Отказ в доступе при вызове метода PrintQueue.Pause() в C#.net
Я пытаюсь приостановить очередь печати Windows 7 с помощью C#.NET visual studio 2008. У меня есть полные права администратора, но когда я запускаю следующий код для приостановки очереди, он говорит, что доступ запрещен. Пожалуйста, помогите мне.
LocalPrintServer lps = new LocalPrintServer(PrintSystemDesiredAccess.AdministrateServer);
//PrintServer lps = new PrintServer("\\\\NOTEBOOK-CI3", PrintSystemDesiredAccess.AdministratePrinter);
lps.Commit();
PrintQueue queue = lps.GetPrintQueue(listBox1.SelectedItem.ToString());
if (!queue.IsPaused)
queue.Pause();
queue.Commit();
lps.Commit();
3 ответа
У меня была такая же проблема, поэтому для меня это было лучшее решение:
PrintS = new PrintServer();
PrintQ = new PrintQueue(PrintS, PrinterName, PrintSystemDesiredAccess.AdministratePrinter);
PrintQ.Pause();
Протестировано с локальным PDF-принтером
Я не уверен, но вы пытались изменить LocalPrinterServer
в PrinterServer
? Взгляните на http://www.visualbasicask.com/visual-basic-language/printqueuepause.shtml.
У него была точно такая же проблема, и он мог решить ее, используя PrintSystemDesiredAccess.AdministrateServer
(который вы используете). Разница лишь в том, что вы используете LocalPrinterServer
вместо PrinterServer
,
Вы работаете на своем сайте как 4.0? Я столкнулся с проблемами, когда мы обновили наш сайт с 3.5 до 4.0 Framework. Функциональность "Очистка печати" перестала работать в 4.0 Framework. В конечном итоге я закончил тем, что создал веб-сервис, в котором использовалась платформа 3.5 и веб-сайт 4.0 сообщал о принтере, который он хотел удалить, в веб-сервис 3.5.
(Извините, что возрождаю эту тему, это была одна из тех тем, на которые я наткнулся, когда искал ответ. Я решил опубликовать это, если это поможет кому-то, кто сталкивается с такой же ситуацией)