2009-05-26 6 views
1

プリンタをネットワークにインストールした後にテストページを印刷すると、非常に奇妙な問題が発生します。それはすべて正常に動作し、管理者としてコードを実行するとき...テストページも印刷されます。しかし、私がプログラムを「通常」実行すると、「アクセスが拒否されました」というメッセージが表示されます。だからここWindows VistaでC#を使用したPrintTestPage

はコードです:

// 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」メソッドを呼び出すと、管理者でもなくても同じです。

誰でも手掛かりがありますように。

おかげで、 サイモン

答えて

1

はそれを解決しました。同じことをし、両方のコンテキストで動作する別のコードを見つけました。

WshShellシェル=新しいWshShell(); 文字列コマンド= "RUNDLL32 PRINTUI.DLL、PrintUIEntry/k/n \" "+ printerInfo.PrinterName +" \ ""; オブジェクトwindowStyle = null; オブジェクトwaitOnReturn = null; shell.Run(コマンド、ref windowStyle、ref waitOnReturn);

それだけです。とにかくありがとう。

乾杯、 シモン

関連する問題