Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];

Вниз

Установка принтера по умолчанию   Найти похожие ветки 

 
bob5   (2004-04-07 20:36) [0]

Необходимо программно изменить принтер по умолчанию.
ели есть код буду рад, но буду благодарен и общему алгоритму.
По хелпам не очень то и понятно, куча структур, куча процедур и функций , а в итоге не понятно что все таки с этим делать.

Спасибо.


 
User_Name   (2004-04-08 13:33) [1]

Я делаю так

WriteProfileString("windows","device","HP LazerJet 1200 Series PCL 6, HP LazerJet 1200 Series PCL 6, lpt1:");

SendMessage(HWND_Broadcast, WM_WININICHANGE,0,0);


 
bob5   (2004-04-08 19:04) [2]

Спасибо большое (Этот вариант есть в FAQ), но мне бы хотелось понять как это делается APi, я залез в TPrinter но то ли я тупой
то ли предмет слишком сложный , но я так и не понял почему нельзя
было сделать нпример Printers.PrinterIndex := 5. в Windows SDK
Help тоже все как-то мудрено есть все кроме как установить принтер по умолчанию


 
panov ©   (2004-04-08 20:11) [3]

>bob5   (08.04.04 19:04) [2]

Из программы можно печатать на любой принтер, не обязательно на тот, который установлен "по-умолчанию".


 
bob5   (2004-04-08 21:17) [4]

Понял! Описываю ситуацию: В ComboBox закачены принтера из
TPrinter. Пользователь выбирает любой принтер и загруженный
по OLE Automation MS Word должен на этот принтер напечатать
отчет мною сформированный.


 
panov ©   (2004-04-08 21:49) [5]

После того, как пользователь выбрал нужный принтер, выполни
Printer.PrinterIndex := Combobox1.ItemIndex;

Дальше печатай как обычно.


 
bob5   (2004-04-13 21:04) [6]

К моему сожалению этот код понимает только Delphi, а
Word говорит что принтер по умолчанию не менялся.


 
panov ©   (2004-04-13 22:02) [7]

procedure TForm1.Button1Click(Sender: TObject);
var
 WA:TWordApplication;
 FName: OLEVariant;
 WPrinter: OLEVariant;
begin
 WA := TWordApplication.Create(nil);
 FName := "c:\test.doc";
 wa.Documents.Open(FName,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyPar am,EmptyParam,EmptyParam);

 WA.ActivePrinter := Combobox1.Text;

 WA.ActiveDocument.PrintOut(EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,Empty Param,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam);
 WA.Free;
end;


 
tesseract ©   (2004-04-14 10:05) [8]

А почему-бы не вызвать стандартный диалог настройки принтера???


 
bob5   (2004-04-14 18:12) [9]

to panov:
Я так свой отчет и вывожу, но в параметрах PrintOut не возможно
указать на какой принтер печатать (печатает на принтер по умолчанию в системе)

to tesseract:
К сожалению не всегда удобно ко всем прочим окнам открываемым user-ом  еще и открывать диалог настройки принтера. интерфейс и так достаточно нагружает user-а.

to ALL:
Но все таки Билл Гейтс со своими окнами хоть и коряво но должен уметь устанавливать Default Printer и кто-то в конференции знает как это делать. Я хочу разобраться с этим вопросом раз и навсегда :) и тогда можно было-бы поместить этот вопрос в FAQ
и больше никогда его не обсуждать. Я пол года не читал этой конференции но вопросы какими были такими и остались. Мне кажется что если раз и навсегда разобраться например как выключать и включать клавиатуру или например несколько вариантов
как работать с Com портом и поместить это в FAQ, то человек познакомившись так сказать со "стандартным" вариантом решения проблемы свои заморочки решал бы более качественно и более четко
ставил бы вопросы в конференции, что значительно бы повысило "рейтинг" и сайта в целом и конференции в частности :).
Все таки жду ответа на свой вопрос.


 
panov ©   (2004-04-14 19:51) [10]

>bob5   (14.04.04 18:12) [9]
после строки

WA.ActivePrinter := Combobox1.Text;

MSWord печатат на выбранный принтер.

Ты пример запусти и попробуй.


 
bob5   (2004-04-14 20:13) [11]

>panov ©   (14.04.04 19:51) [10]

Век живи век учись! Спасибо огромное, проглядел эту строчку
в вашем ответе. Теперь все работает.

Но все таки, это так сказать обходной путь, может кто знает
как это сделать с помощью окнов


 
Adder ©   (2004-04-14 21:03) [12]

http://support.microsoft.com/default.aspx?scid=kb;en-us;246772


 
panov ©   (2004-04-14 22:31) [13]

http://www.delphikingdom.ru/asp/answer.asp?IDAnswer=7583


 
bob5   (2004-04-15 16:37) [14]

Ссылка от Adder очень привлекательная разберусь и отвечу



Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.037 c
14-1083656290
GanibalLector
2004-05-04 11:38
2004.05.23
ДОС версии ниже 6.22.


4-1080802082
Alexey
2004-04-01 10:48
2004.05.23
От чьего имени запущено приложение.


3-1083344624
Anti
2004-04-30 21:03
2004.05.23
DBF-File


4-1081145490
Tanuki
2004-04-05 10:11
2004.05.23
Запуск внешнего приложения из Delphi


3-1083158365
Stupid
2004-04-28 17:19
2004.05.23
SQL c Null





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский