Доступ запрещен при попытке очистить очередь печати в C #

Я пытаюсь создать метод на C #, который очищает все элементы в очереди печати. Ниже мой код:

LocalPrintServer localPrintServer = new LocalPrintServer(PrintSystemDesiredAccess.AdministratePrinter); 
PrintQueue printQueue = localPrintServer.GetPrintQueue(printerName);

if (printQueue.NumberOfJobs > 0)
{
    printQueue.Purge();
}

Когда этот код запускается в конструкторе localPrintServer, приложение выдает следующую ошибку: «Исключение произошло при создании объекта PrintServer. Ошибка Win32: доступ запрещен»

Этот конструктор имеет несколько перегрузок (включая отправку параметров). Пробуя любой из них, я обхожу эту строку, но когда я перехожу к вызову printQueue.Purge (), я получаю такое же сообщение об отказе в доступе, как указано выше.

Ищу предложения, как / что я могу сделать, чтобы обойти это. Я могу вручную удалить задания на печать со своего компьютера. Я не уверен, работает ли приложение с тем же доступом, что и у меня, и как это проверить.

7
задан svick 1 December 2011 в 21:58
поделиться