![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Установка принтера по умолчанию [D7, Win2k]
bob5 © (2004-04-07 20:36:00)Необходимо программно изменить принтер по умолчанию.
ели есть код буду рад, но буду благодарен и общему алгоритму.
По хелпам не очень то и понятно, куча структур, куча процедур и функций , а в итоге не понятно что все таки с этим делать.
Спасибо.
bob5 (2004-04-15 16:37:00) [1]Ссылка от Adder очень привлекательная разберусь и отвечу
panov (2004-04-14 22:31:00) [2]http://www.delphikingdom.ru/asp/answer.asp?IDAnswer=7583
Adder (2004-04-14 21:03:00) [3]http://support.microsoft.com/default.aspx?scid=kb;en-us;246772
bob5 (2004-04-14 20:13:00) [4]>panov © (14.04.04 19:51) [10]
Век живи век учись! Спасибо огромное, проглядел эту строчку
в вашем ответе. Теперь все работает.
Но все таки, это так сказать обходной путь, может кто знает
как это сделать с помощью окнов
panov (2004-04-14 19:51:00) [5]>bob5 (14.04.04 18:12) [9]
после строки
WA.ActivePrinter := Combobox1.Text;
MSWord печатат на выбранный принтер.
Ты пример запусти и попробуй.
bob5 (2004-04-14 18:12:00) [6]to panov:
Я так свой отчет и вывожу, но в параметрах PrintOut не возможно
указать на какой принтер печатать (печатает на принтер по умолчанию в системе)
to tesseract:
К сожалению не всегда удобно ко всем прочим окнам открываемым user-ом еще и открывать диалог настройки принтера. интерфейс и так достаточно нагружает user-а.
to ALL:
Но все таки Билл Гейтс со своими окнами хоть и коряво но должен уметь устанавливать Default Printer и кто-то в конференции знает как это делать. Я хочу разобраться с этим вопросом раз и навсегда :) и тогда можно было-бы поместить этот вопрос в FAQ
и больше никогда его не обсуждать. Я пол года не читал этой конференции но вопросы какими были такими и остались. Мне кажется что если раз и навсегда разобраться например как выключать и включать клавиатуру или например несколько вариантов
как работать с Com портом и поместить это в FAQ, то человек познакомившись так сказать со "стандартным" вариантом решения проблемы свои заморочки решал бы более качественно и более четко
ставил бы вопросы в конференции, что значительно бы повысило "рейтинг" и сайта в целом и конференции в частности :).
Все таки жду ответа на свой вопрос.
tesseract (2004-04-14 10:05:00) [7]А почему-бы не вызвать стандартный диалог настройки принтера???
panov (2004-04-13 22:02:00) [8]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;
bob5 (2004-04-13 21:04:00) [9]К моему сожалению этот код понимает только Delphi, а
Word говорит что принтер по умолчанию не менялся.
panov (2004-04-08 21:49:00) [10]После того, как пользователь выбрал нужный принтер, выполни
Printer.PrinterIndex := Combobox1.ItemIndex;
Дальше печатай как обычно.
bob5 (2004-04-08 21:17:00) [11]Понял! Описываю ситуацию: В ComboBox закачены принтера из
TPrinter. Пользователь выбирает любой принтер и загруженный
по OLE Automation MS Word должен на этот принтер напечатать
отчет мною сформированный.
panov (2004-04-08 20:11:00) [12]>bob5 (08.04.04 19:04) [2]
Из программы можно печатать на любой принтер, не обязательно на тот, который установлен "по-умолчанию".
bob5 (2004-04-08 19:04:00) [13]Спасибо большое (Этот вариант есть в FAQ), но мне бы хотелось понять как это делается APi, я залез в TPrinter но то ли я тупой
то ли предмет слишком сложный , но я так и не понял почему нельзя
было сделать нпример Printers.PrinterIndex := 5. в Windows SDK
Help тоже все как-то мудрено есть все кроме как установить принтер по умолчанию
User_Name (2004-04-08 13:33:00) [14]Я делаю так
WriteProfileString('windows','device','HP LazerJet 1200 Series PCL 6, HP LazerJet 1200 Series PCL 6, lpt1:');
SendMessage(HWND_Broadcast, WM_WININICHANGE,0,0);