Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.057 c
15-1350940105
kilkennycat
2012-10-23 01:08
2013.03.22
Какой бесплатный и мощный текстовый редактор?


15-1344601216
Павел
2012-08-10 16:20
2013.03.22
установка


15-1340569805
Юрий
2012-06-25 00:30
2013.03.22
С днем рождения ! 25 июня 2012 понедельник


3-1279853308
dm37
2010-07-23 06:48
2013.03.22
Несколько запросов одновременно через один ADOConnection


15-1343645986
Es
2012-07-30 14:59
2013.03.22
TcxComboBox, уведомление о Delete?





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