Форум: "WinAPI";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
ВнизОпределить готовность устройства Найти похожие ветки
← →
TN_TN (2009-12-25 11:18) [0]Какая функция определяет готовность устройства ?
Необходимо определить готовность флешки , принтера .
Спасибо .
← →
KilkennyCat © (2009-12-25 11:22) [1]готовность к чему?
нужна одна функция на всех? :)
← →
TN_TN (2009-12-25 11:44) [2]Прежде чем печатать или делать копию , необходимо определить :
- влючено ли устройство печати ;
- вставлена ли флешка в порт .
← →
brother © (2009-12-25 11:50) [3]> Прежде чем печатать или делать копию , необходимо определить
> :
> - влючено ли устройство печати ;
> - вставлена ли флешка в порт .
ппц логига)
← →
brother © (2009-12-25 11:51) [4]ты так лихо определил принципиально разные устройства (я молчу про разные марки, модели) в общее - устройства
и хочещь уже общую для них функцию?
← →
oldman © (2009-12-25 12:00) [5]
> TN_TN (25.12.09 11:44) [2]
> Прежде чем печатать или делать копию , необходимо определить:
> - влючено ли устройство печати ;
> - вставлена ли флешка в порт .
А почему это должна делать программа, а не пользователь?
Пишешь программу для обезьян?
← →
KilkennyCat © (2009-12-25 12:49) [6]возможно, некая автоматизация... например, после окончания рабочего дня, пользователи проходят мимо воронки, куда опускают свои флэшки. Специальное устройство ночью автоматически их вставляет в комп, включает принтер, ждет, когда все вставится и включится (вот тут и трабл) и печатает, печатает... Утром люди приходят на работу, специальное устройство определяет, чья флэшка и выдает им взад (здесь не опечатка, именно слитно - взад).
← →
GENAONYX © (2009-12-25 13:06) [7]
function TfrmMain.PrinterStatus(MyPrinterName:string):integer;
var
PrinterName: string;
szPrinterName: array[0 .. 127] of char;
pPrinter: array[0 .. 19] of TPrinterInfo2;//PRINTER_INFO_2A; //20 is a guess
pcReturned,
pcbNeeded: DWORD;
l: integer;
pBuffer: pointer;
begin
l:= 0;
//MyPrinterName:="hp laserjet iiid";
EnumPrinters(PRINTER_ENUM_NAME, // types of printer objects to enumerate
nil, //PChar(MyPrinterName), // name of printer object
2, // specifies type of printer info structure
nil, // pointer to buffer to receive printer info structures
0, // we use 0 so that Windows tells us how big a buffer it wants
pcbNeeded, // pointer to variable with no. of bytes copied (or required)
pcReturned // pointer to variable with no. of printer info. structures copied
);
GetMem(pBuffer,pcbNeeded); //create a buffer of the required size
fillchar(pBuffer^,pcbNeeded,0);
EnumPrinters(PRINTER_ENUM_NAME, //now we read the printer list
nil,
2,
pBuffer,
pcbNeeded, // this is the real size, in bytes, of buffer
pcbNeeded,
pcReturned
);
//now we copy that part of the buffer that we are interested in to our array
system.move(pBuffer^,pPrinter,pcReturned*sizeof(TPrinterInfo2));
// Find my printer
for l:= 0 to pcReturned - 1 do
begin
if l > 3 then
ShowMessage("Value l: " + IntToStr(l));
PrinterName:= string(pPrinter[l].pPrinterName);
if UpperCase(PrinterName) = UpperCase(MyPrinterName) then
begin
Result:= pPrinter[l].Status;
break;
end;
end;
FreeMem(pBuffer,pcbNeeded);
end;
{either 0 or one of the following
PRINTER_STATUS_BUSY
PRINTER_STATUS_DOOR_OPEN
PRINTER_STATUS_ERROR
PRINTER_STATUS_INITIALIZING
PRINTER_STATUS_IO_ACTIVE
PRINTER_STATUS_MANUAL_FEED
PRINTER_STATUS_NO_TONER
PRINTER_STATUS_NOT_AVAILABLE
PRINTER_STATUS_OFFLINE
PRINTER_STATUS_OUT_OF_MEMORY
PRINTER_STATUS_OUTPUT_BIN_FULL
PRINTER_STATUS_PAGE_PUNT
PRINTER_STATUS_PAPER_JAM
PRINTER_STATUS_PAPER_OUT
PRINTER_STATUS_PAPER_PROBLEM
PRINTER_STATUS_PAUSED
PRINTER_STATUS_PENDING_DELETION
PRINTER_STATUS_PRINTING
PRINTER_STATUS_PROCESSING
PRINTER_STATUS_TONER_LOW
PRINTER_STATUS_USER_INTERVENTION
PRINTER_STATUS_WAITING
PRINTER_STATUS_WARMING_UP
}
← →
Anatoly Podgoretsky © (2009-12-25 13:09) [8]> TN_TN (25.12.2009 11:44:02) [2]
1. Включить питание.
2. Пытаться писать, обработать ошибку.
← →
12 © (2009-12-25 17:43) [9]1. Включить питание.
2. Пытаться писать, обработать ошибку.
1 - лишнее
Делать что хотел и обработать ошибку.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.066 c