Форум: "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