在 C#.net 中调用 PrintQueue.Pause() 方法时访问被拒绝

Zer*_*one 2 c# system.printing visual-studio-2008

我正在尝试使用 C#.NET Visual Studio 2008 暂停 Windows 7 打印队列。我拥有完全管理员权限,但是当我运行以下代码来暂停队列时,它显示访问被拒绝。请帮我。

        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();
Run Code Online (Sandbox Code Playgroud)

小智 6

我遇到了同样的问题,所以对我来说这是最好的解决方案:

PrintS = new PrintServer();
PrintQ = new PrintQueue(PrintS, PrinterName, PrintSystemDesiredAccess.AdministratePrinter);
PrintQ.Pause();
Run Code Online (Sandbox Code Playgroud)

使用本地 PDF 打印机进行测试