Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.094 c
1-1134713613
Дмитрий_177
2005-12-16 09:13
2006.01.22
Проблема с созданием елементов в Notebook


14-1135769635
Johnmen
2005-12-28 14:33
2006.01.22
Модераторам


14-1135803242
Igorioha
2005-12-28 23:54
2006.01.22
Firebird


14-1135538589
Ihor Osov'yak
2005-12-25 22:23
2006.01.22
Есть пробел в знаниях.


14-1135983924
Profi
2005-12-31 02:05
2006.01.22
Всех С Новым 2006 Годом!





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский