2011-06-17 23 views
4

WPFアプリケーション内の既定のプリンタを変更する最適な方法を探しています。アプリケーションができることを望んでいるステップは次のとおりです。WPFアプリケーション内で既定のプリンタを変更する

  1. プリンタ名にマップされたドロップダウンから場所を選択します。
  2. デフォルトのプリンタをマップ名に変更します。
  3. IEを起動し、SSRSレポートをポイントします。
  4. ユーザーは、ステップ2は、私はと援助を探しているものです

新しいデフォルトのプリンタを使用するであろう、IEからのレポートを印刷します。

これはWMIのユースケースですか?もしそうなら、被験者のどんなリソースも大きな助けになるでしょう。

ありがとうございます!

答えて

6

この使用:

var query = new ManagementObjectSearcher("SELECT * FROM Win32_Printer"); 
var printers = query.Get(); 
string printerName = "Printer to set as default" ; 
foreach(ManagementObject printer in printers) 
{ 
    if (printer["name"].ToString() == printerName.ToString()) 
    { 
     printer.InvokeMethod("SetDefaultPrinter", new object[] { printerName }); 
    } 
} 
+0

を私はSystem.ManagementとSystem.Management.Instrumentationへの参照を追加し、インポート加え 'System.Managementを使用して、'。しかし、私はまだ 'currentObject'と 'InvokeMethod'の下にエラー行を表示しています。私は 'currentObject'実際には 'プリンタ'にする必要があると推測していますが、それでも 'InvokeMethod'の問題は解決しません。 – NickHeidke

+0

ごめんなさい。 –

+0

プリンタオブジェクトでInvokeMethodを呼び出すときにエラーが発生しました。 'System.Management.ManagementBaseObject'に 'InvokeMethod'の定義が含まれておらず、拡張メソッド 'InvokeMethod'が最初の引数を受け入れていません'System.Management.ManagementBaseObject'型が見つかりました(usingディレクティブまたはアセンブリ参照がありませんか?) – NickHeidke

関連する問題