簡體   English   中英

Windows Vista上帶有C#的PrintTestPage

[英]PrintTestPage with C# on Windows Vista

在網絡上安裝打印機后打印測試頁時,我遇到一個非常奇怪的問題。 一切都很好,並且在以管理員身份運行代碼時...也會打印測試頁。 但是,當我“正常”運行程序時,出現“拒絕訪問”的提示。

所以這是代碼:

// get the printer
string path = "Win32_Printer.DeviceId='" + printerName + "'";
using (ManagementObject printer = new ManagementObject(path))
{
    // invoke the method
    object obj = printer.InvokeMethod("PrintTestPage", null);
    System.Windows.Forms.MessageBox.Show(obj.ToString());
}

obj始終為5,表示“訪問被拒絕”。

當我以相同的方式調用“ SetDefaultPrinter”方法時,無論對於管理員還是非管理員都適用。

希望任何人都有頭緒。

謝謝西蒙

解決了。 我發現了另一段相同的代碼,並且可以在兩種情況下工作。

WshShell shell =新的WshShell(); 字符串命令=“ RUNDLL32 PRINTUI.DLL,PrintUIEntry / k / n \\”“ + printerInfo.PrinterName +” \\“”; object windowStyle = null; 對象waitOnReturn = null; shell.Run(命令,ref windowStyle,ref waitOnReturn);

就是這樣了。 不管怎么說,還是要謝謝你。

干杯,西蒙

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM