|
저도 정확하게는 모릅니다만, API 함수중 EnumPrinters 함수의 레벨 2정보의 Status에
프린터가 OFF인지 체크하는 것이 있는 것 같습니다.
다음은 참고 예제를 제가 약간 변경 한 것인데, 제 컴은 프린터가 없어서 제대로 된건지는 알 수 없습니다........;;
EnumPrinters를 help에서 찾아보시기 바랍니다.
DWORD cbNeed, cbReturn;
EnumPrinters(PRINTER_ENUM_LOCAL, NULL, 2, NULL, 0, &cbNeed, &cbReturn);
PRINTER_INFO_2 *pi2;
pi2 = (PRINTER_INFO_2 *)malloc(cbNeed);
EnumPrinters(PRINTER_ENUM_LOCAL, NULL, 2, (PBYTE)pi2, cbNeed, &cbNeed, &cbReturn);
if (pi2[0].Status == PRINTER_STATUS_OFFLINE)
ShowMessage("Off");
else
ShowMessage("On");
free(pi2);
초보자 님이 쓰신 글 :
: bool __fastcall TtcdResult::checkPrintName()
: {
:
: TPrinter *P = Printer();
: TRACE("Print Name=%s P->Printers->Count=%d P->PrinterIndex=%d P->Printing=%d P->Handle=%d"
: , P->Printers->Text ,P->Printers->Count ,P->PrinterIndex ,P->Printing ,P->Handle);
:
: if (P->PrinterIndex != 0)
: {
: return true;
: }
: else
: {
: return false;
: }
: return true;
: }
:
:
: 위의 TRACE를 넣어서 ON, OFF 시 테스트 했는데.. count ,index, name .. 등 값이 모두
: 내용이 같습니다..
:
: 프린트 ON , OFF 처리 어떻게 해야되는지 ..모르겠습니다.
|