benim uygulamada (Windows Yedi, VS2010) bir görüntüyü başarıyla yazdırdıktan sonra bir kredi sayacı azaltmak zorundayım. Her halükarda, tüm süreci başlatmadan önce, kullanıcıyı kağıt üzerinde, kağıt sıkışması ve benzeri konularda uyarmak için yazıcı durumunu bilmek istiyorum. Şimdi etrafa bakınca Windows WMI kullanan birkaç örnek buldum ama ... asla işe yaramıyor. Örneğin, THIS snippet'i kullanarak, yazıcı durumunu her zaman hazır olur da kağıdı çıkarırsam, kapağı açın ... yazıcıyı kapatın.C# yazıcı durumunu kontrol et
Yazıcı durumu her zaman iyi, şimdi evde rahatça sökülen yazıcıyı ofisinden test ediyorum. , bir yazıcı hatası durumuna sahip olmak için cihazı dinamit ile patlatmalı mıyım?
Bu
'printername' parametresi olarak alındığında neredenManagementObjectCollection 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");
}
}
}
kullandım koddur.
Tavsiye ettiğiniz için teşekkür ederiz.
Çalışan bir şey bulduğunuzda, * yazdırdığınız bu durumlardan herhangi biri veya tümü ile başa çıkmak zorunda olduğunuzu unutmayın. Ayrıca, durumu denetleme ve yazdırma işini başlatma arasında dinamitin kesilmesi gerekebilir. –
WMI'yi suçlayabilir. Çoğu yazıcı sürücüsü WMI'nın seçmesi için yazıcı durumunu doğru şekilde güncellemez. biz çeşitli zamanlarda karşı karşıyayız –
hangi yazıcı (lar) bakıyorsunuz? –