Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.23;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.645 c
3-1082979445
din
2004-04-26 15:37
2004.05.23
Помогите составить запрос


14-1083513533
Marina_S
2004-05-02 19:58
2004.05.23
TurboPascal


3-1083134812
Негодов
2004-04-28 10:46
2004.05.23
Обработка данных перед выводом их в DBGrid


1-1083326811
BFG9k
2004-04-30 16:06
2004.05.23
Сортировка TCollection


14-1083658587
Def_E
2004-05-04 12:16
2004.05.23
Область скходимости функционального ряда