Доступ запрещен при вызове метода PrintQueue.Pause () в C # .net - PullRequest
1 голос
/ 02 октября 2010

Я пытаюсь приостановить очередь печати 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 ]

2 голосов
/ 03 июня 2013

У меня была такая же проблема, поэтому для меня это было лучшее решение:

PrintS = new PrintServer();
PrintQ = new PrintQueue(PrintS, PrinterName, PrintSystemDesiredAccess.AdministratePrinter);
PrintQ.Pause();

Протестировано с локальным PDF-принтером

1 голос
/ 02 октября 2010

Я не уверен, но вы пытались изменить LocalPrinterServer на PrinterServer? Взгляните на http://www.visualbasicask.com/visual-basic-language/printqueuepause.shtml.
У него была точно такая же проблема, и он мог решить ее, используя PrintSystemDesiredAccess.AdministrateServer (которую вы используете). Разница лишь в том, что вы используете LocalPrinterServer вместо PrinterServer.

0 голосов
/ 04 февраля 2016

Вы используете свой сайт как 4.0?Я столкнулся с проблемами, когда мы обновили наш сайт с 3.5 до 4.0 Framework.Функциональность «Очистка печати» перестала работать в 4.0 Framework.В конечном итоге я закончил тем, что создал веб-сервис, который использовал платформу 3.5 и веб-сайт 4.0 сообщал о принтере, который он хотел очистить, для веб-службы 3.5.Я наткнулся на, когда искал ответ. Я решил опубликовать это, если это поможет кому-то, кто сталкивается с такой же ситуацией)

...