Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

Определить готовность устройства   Найти похожие ветки 

 
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 вся ветка

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.07 c
15-1338218111
brother_home
2012-05-28 19:15
2013.03.22
опять ностальгия!


15-1342072358
AV
2012-07-12 09:52
2013.03.22
Эффективность подразделения в компании


10-1181018110
Yriy
2007-06-05 08:35
2013.03.22
Проблема с Excel 2003


2-1338196726
leklerk
2012-05-28 13:18
2013.03.22
Не работает WinExec


2-1346416774
Bolg
2012-08-31 16:39
2013.03.22
На что указывает указатель?