![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
процедура которая устанавливает принтер поумолчанию [D7, XP]
Fynjy © (2008-10-24 14:21:00)здравствуйте! Есть процедура которая устанавливает принтер поумолчанию, работает нормально для локальных принтеров, но сетевой принтер(HP5100) не ставит, никто не знает почему?
вот процедура:
newDefPrinter-имя принтера
procedure Tform1.MySetDefaultPrinter(newDefPrinter: string);
var
Device, Driver, Port : array[0..255] of Char;
HdeviceMode: THandle;
aPrinter: TPrinter;
i:integer;
begin
Printer.PrinterIndex := -1;
aPrinter := TPrinter.Create;
try
for i := 0 to Printer.Printers.Count - 1 do
begin
if Printer.Printers[i] = newDefPrinter then
begin
aprinter.PrinterIndex := i;
aPrinter.getprinter(device, driver, port, HdeviceMode);
StrCat(Device, ','); StrCat(Device, Driver);
StrCat(Device, ','); StrCat(Device, Port);
WriteProfileString('windows', 'device', Device);
StrCopy(Device, 'windows');
SendMessage(HWND_BROADCAST, WM_WININICHANGE, 0, Longint(@Device));
SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, Longint(@Device));
end;
end;
finally
aPrinter.Free;
end;
end;
www (2008-10-24 17:37:00) [1]а если он будет недоступен?
Fynjy (2008-10-24 15:05:00) [2]вот! точно, я не правильно писал имя принтера. Спасибо!
wl (2008-10-24 14:56:00) [3]как выглядит строка для сетевого принтера? \\server\printer?