Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.09.12;
Скачать: [xml.tar.bz2];

Вниз

Включён ли "принтер по умолчанию"?   Найти похожие ветки 

 
Andriy Tysh ©   (2004-07-30 12:10) [0]

Написал функцию, которая должна была проверять включён ли принтер по умолчанию. Но вышла только проверка каждого. А нужно именно "по умолчанию". Что не так? Может кто подбросит свою разработку.

...
uses ..., WinSpool, ...;
...

function PrinterIsOnOff(): Boolean;
var
 Buffer, PrinterInfo: PChar;
 Flags, Count, NumInfo: DWORD;
 I: Integer;
 Level: Byte;
begin
 Result:=True;
 begin
   try
     Flags := PRINTER_ENUM_CONNECTIONS or PRINTER_ENUM_LOCAL;
     Level := 2;
     Count := 0;
     EnumPrinters(Flags, nil, Level, nil, 0, Count, NumInfo);
     //Якщо вощє нема!
     if Count = 0 then
     begin
       Result:=False;
       Exit;
     end;
     GetMem(Buffer, Count);
     try
       if not EnumPrinters(Flags, nil, Level, PByte(Buffer), Count, Count, NumInfo) then
       begin
         Result:=False;
         Exit;            
       end;
       PrinterInfo := Buffer;
       for I := 0 to NumInfo - 1 do
       begin

           with PPrinterInfo2(PrinterInfo)^ do
           begin
             if (Attributes OR (
                       //PRINTER_ATTRIBUTE_QUEUED or  //1     //0
                       //PRINTER_ATTRIBUTE_DIRECT or  //2     //1
                       //PRINTER_ATTRIBUTE_DEFAULT or  //4    //2
                       //PRINTER_ATTRIBUTE_SHARED or  //8     //3
                       //PRINTER_ATTRIBUTE_NETWORK //or  //16   //4
                       //PRINTER_ATTRIBUTE_HIDDEN //or  //32    //5
                       //PRINTER_ATTRIBUTE_LOCAL or  //64     //6
                       //PRINTER_ATTRIBUTE_ENABLE_DEVQ //or  //128   //7
                       //PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS or //256   //8
                       PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST or //512    //9
                       PRINTER_ATTRIBUTE_WORK_OFFLINE //or //1024    //10  
                       //PRINTER_ATTRIBUTE_ENABLE_BIDI //or  //2048     //11
                       //PRINTER_ATTRIBUTE_RAW_ONLY  //4096         //12
                       )) = Attributes then
             begin
               Result:=False;
               Application.MessageBox(PChar("Проверте включён ли принтер!"),
                   PChar(US_MSG_ERROR), MB_ICONERROR);
             end;
             Inc(PrinterInfo, sizeof(TPrinterInfo2));
           end;
       end;
     finally
       FreeMem(Buffer, Count);
     end;
   except
     raise;
   end;
 end;
end;


 
clickmaker ©   (2004-07-30 12:56) [1]

PRINTER_ATTRIBUTE_DEFAULT ?


 
Andriy Tysh ©   (2004-07-30 14:24) [2]

хм..
Пробовал, ибо значение DEFAULT очень близко "по-умолчанию", не работает.
Может проблема в том, что принтера сетевые?
Может кто альтернативный метод предложит?


 
Andriy Tysh ©   (2004-07-31 10:12) [3]

Спасибо всем за активное обсуждение вопроса. Как следствие - я сам нашёл решение.
И вообще меня удивляет, что модератор меня сюда бросил. Так как я когда-то писал уже здесь и меня выбросили с АПИ. :-))))



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.09.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.036 c
14-1092945048
Voprosov_net
2004-08-19 23:50
2004.09.12
Грустно.


1-1093722914
UserUserov
2004-08-28 23:55
2004.09.12
случайные числа


6-1089188010
Maks_G
2004-07-07 12:13
2004.09.12
Проблемы с IdHTTPServer и POST


10-1015848534
m.r. sender
2002-03-11 15:08
2004.09.12
CORBA через модем


1-1093616975
dimon1979
2004-08-27 18:29
2004.09.12
Японский кроссворд





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