Форум: "Основная";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];
ВнизКак узнать что в системе установлен хотя бы один принтер? Найти похожие ветки
← →
Pavel__ (2005-12-16 22:42) [0]Здравствуйте, собственно сабж. Printer.Printers.Count вряд ли поможет - список насколько я понял формируется при запуске приложения, а обновлять его каждый раз когда требуется слишком ресурсоемко. Спасибо.
← →
kami © (2005-12-16 22:54) [1]Pavel__ (16.12.05 22:42)
формируется при запуске
неправда ваша (с)
Он формируется при первом обращении к свойству Printers.
как получить список принтеров - можно посмотреть, как это делает функция GetPrinters класса Printer
← →
Pavel__ (2005-12-16 23:02) [2]
> неправда ваша (с)
Я просто не стал углублятся в подробности, суть одна - список постоянен, принтеры уже могут быть удалены а список никуда не денется. А знать есть ли принтеры в системе нужно очень часто.
← →
Pavel__ (2005-12-16 23:06) [3]Все, извиняюсь :). Это все природная лень, покопал исходник, вижу как сделать, пишу функцию. Спасибо :)
← →
Pavel__ (2005-12-16 23:08) [4]
function PrintersCount: Integer;
var
LineCur, Port: PChar;
Buffer, PrinterInfo: PChar;
Flags, Count, NumInfo: DWORD;
I: Integer;
Level: Byte;
begin
if Win32Platform = VER_PLATFORM_WIN32_NT then
begin
Flags := PRINTER_ENUM_CONNECTIONS or PRINTER_ENUM_LOCAL;
Level := 4;
end
else
begin
Flags := PRINTER_ENUM_LOCAL;
Level := 5;
end;
Count := 0;
EnumPrinters(Flags, nil, Level, nil, 0, Count, NumInfo);
Result := Count;
end;
← →
Германн © (2005-12-17 01:23) [5]Радикальный способ решения сабжа! Задействовать в программе QReport. На моей памяти он при старте программы всегда "громко кричал", если в системе не был установлен ни один принтер. :-)
← →
Pavel__ (2005-12-17 02:25) [6]
> Радикальный способ решения сабжа! Задействовать в программе
> QReport. На моей памяти он при старте программы всегда "громко
> кричал", если в системе не был установлен ни один принтер.
> :-)
Дык наоборот, надо чтоб не кричало об этом и не было обращений к несуществующему устройству :)
← →
Германн © (2005-12-17 02:31) [7]
> Pavel__ (17.12.05 02:25) [6]
>
> Дык наоборот, надо чтоб не кричало об этом и не было обращений
> к несуществующему устройству :)
Ты же в сабже спросил, " Как узнать что в системе установлен хотя бы один принтер?" Ну я и ответил. Или мой юмор был не понят?
← →
Pavel__ (2005-12-17 02:49) [8]
> Или мой юмор был не понят?
Был понят :) Действую от обратного - узнаю есть ли принтер и с ним работаю, в противном случае - не даю работать пользователю и не показываю всяких глупых сообщений об ошибках. Вот :)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.17 c