내 응용 프로그램 (Windows Seven, VS2010) 이미지를 성공적으로 인쇄 한 후 신용 카운터를 줄여야합니다. 어쨌든 전체 프로세스를 시작하기 전에 사용자에게 용지가 없음, 용지 걸림 등을 경고하기 위해 프린터 상태를 알고 싶습니다. 이제 주위를 둘러 보았지만 Windows WMI를 사용하는 여러 예제를 발견했지만 ... 결코 작동하지 않습니다. 예를 들어, THIS 스 니펫을 사용하여 용지를 제거하고 표지를 열었을 때 프린터 상태가 항상 준비됩니다. 프린터를 끕니다.C# 프린터 상태 확인
프린터 상태는 현재 양호합니다. 사무실에서 편안하게 꺼져있는 프린터를 테스트하고 있습니다. 프린터 오류 상태를 갖기 위해 다이너마이트로 장치를 폭파 할 수 있습니까?
이
은 'printerName를'을 매개 변수로 수신 어디ManagementObjectCollection MgmtCollection;
ManagementObjectSearcher MgmtSearcher;
//Perform the search for printers and return the listing as a collection
MgmtSearcher = new ManagementObjectSearcher("Select * from Win32_Printer");
MgmtCollection = MgmtSearcher.Get();
foreach (ManagementObject objWMI in MgmtCollection)
{
string name = objWMI["Name"].ToString().ToLower();
if (name.Equals(printerName.ToLower()))
{
int state = Int32.Parse(objWMI["ExtendedPrinterStatus"].ToString());
if ((state == 1) || //Other
(state == 2) || //Unknown
(state == 7) || //Offline
(state == 9) || //error
(state == 11) //Not Available
)
{
throw new ApplicationException("hope you are finally offline");
}
state = Int32.Parse(objWMI["DetectedErrorState"].ToString());
if (state != 2) //No error
{
throw new ApplicationException("hope you are finally offline");
}
}
}
를 사용했던 코드입니다.
감사합니다.
작동하는 것을 찾았을 때 인쇄 할 때 * 발생하는 이러한 상황 중 일부 또는 전부에 대처해야한다는 것을 기억하십시오. 다이나마이트가 상태를 확인하고 실제로 인쇄 작업을 시작하는 사이에 꺼질 수 있습니다. –
은 WMI를 비난 할 수 있습니다. 대부분의 프린터 드라이버는 WMI가 선택할 프린터 상태를 제대로 업데이트하지 않습니다. 우리는 여러 번 그것에 직면했습니다 –
당신은 어떤 프린터를보고 있습니까? –