Я разрабатываю приложение, которое необходимо определить, подключен ли принтер. Я знаю методы WMI для перечисления подключенных принтеров. Но что делать, если принтер подключен после запуска приложения? У нас есть какие-то события или API для этого? Или мне нужно часто проверять код WMI?событие, связанное с принтером
для простоты я попробовал LocalPrintServer
класс как это:
PrintQueue printQueue = null;
LocalPrintServer localPrintServer = new LocalPrintServer();
// Retrieving collection of local printer on user machine
PrintQueueCollection localPrinterCollection =
localPrintServer.GetPrintQueues(new[] { EnumeratedPrintQueueTypes.Local, EnumeratedPrintQueueTypes.Connections });
System.Collections.IEnumerator localPrinterEnumerator =
localPrinterCollection.GetEnumerator();
while(localPrinterEnumerator.MoveNext())
{
// Get PrintQueue from first available printer
printQueue = (PrintQueue)localPrinterEnumerator.Current;
if (!printQueue.IsOffline)
{
string s = "Printer found " + printQueue.FullName.ToString();
listBox1.Items.Add(s);
bDeviceFound = true;
button1.Enabled = bDeviceFound;
}
Вы знаете, что покажет установленные принтеры, которые выполняют при запуске приложения. Проблема в том, что он не может определить, подключен ли принтер после запуска приложения. Если у нас есть какие-либо события для этого, я могу вызвать этот метод для повторного перечисления принтера, если только я не предполагаю, что для потока или цикла while?
Благодаря
Вы пробовали _anything_? Покажите свою работу. –
Пожалуйста, см. Мою работу. – Zigma
. Я не могу напрямую помочь вам, но попробую google для любых записей/кода блога Duncan Edwards Jones. Он, кажется, правильный гуру .net-printing. – svenv