Witam.
Mam w systemie Windows7 zainstalowaną drukarkę (a konkretniej jej driver).
Potrzebuję sprawdzić z poziomu aplikacji pisanej w C# czy drukarka jest offline czy online.
Właściwość InstalledPrinters
pomimo tego że drukarka jest odłączona (odłączony kabel usb) "ciągle ją widzi" że jest i ma rację bo jest zainstalowana.
Nie potrafię jednak wykryć kiedy jest podłączona a kiedy nie , próbowałem tak ale niestety bez skutku:
bool check_is_offline()
{
var queue = new System.Printing.LocalPrintServer().GetPrintQueue("ZDesigner LP 2824 Plus (EPL)");
var queueStatus = queue.QueueStatus;
if (queueStatus == System.Printing.PrintQueueStatus.Offline) return true;
else return false;
}
Najlepsze jest to że jak podglądam co siedzi pod QueueStatus pod trybem debugowania przy odłączonej drukarce to okazuje się że to są jakieś bzdury bo offline niezależnie czy drukarka jest podłączona po usb czy nie to offline jest false, czyli to tak jakby cały czas była podłączona a nie jest.
Ktoś potrafi pomóc wykryć status podłączenia ?
Zauważyłem że w panelu sterowania/drukarki jak wyciągam kabelek usb to wyszarza się ta drukarka, więc system potrafi to od razu stwierdzić.
Byłem również i tutaj:
https://stackoverflow.com/questions/26510399/how-to-check-printer-status-in-c
i dowiedziałem się że może być tak że drukarka nie obsługuje tych właściwości. Ale jak w takim razie sam system ją "wyszarza" - skądś przecież musi to wiedzieć...