ご回答ありがとうございます。 仰るとおり .NET2.0 上で .NET3.0 のクラスを動かすのは無理があったかもしれません。 ご提示頂きましたWMI の Win32_Printer クラスを使いたく思います。 上記のものを調査しましたところ、 プリンタ名を表示するサンプルソースが見つかり、 プログラムへ実装し正常動作を確認しました。 ただ、そこにジョブをとめるメソッド(CancelAllJobs)を実装しようとすると 次のエラーが出てしまいます。 ----- 'System.Management.ManagementObject' に 'CancelAllJobs' の定義がありません。 ----- # メソッド実装箇所は下記ソースの 「//printer.CancelAllJobs(); // <- エラーが発生」の行です WMI と Win32_Printer の基本的な使い方が間違ってしまっているように思われますが どうすればよいか判らず困っております。 もしご存知でありましたら教えて下さいますでしょうか。 # SELECT文でシステム情報を取得するってユニークですね # こんなこともできるんだ、と感心してしまいました @ソース ----- using System; using System.Management; namespace zedilabs.com { class PrinterOffline { [STAThread] static void Main(string[] args) { // Set management scope ManagementScope scope = new ManagementScope(@"\root\cimv2"); scope.Connect(); // Select Printers from WMI Object Collections ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Printer"); string printerName = ""; foreach (ManagementObject printer in searcher.Get()) { printerName = printer["Name"].ToString().ToLower(); //debug Console.WriteLine(printerName); //printer.CancelAllJobs(); // <- エラーが発生 } //debug Console.ReadLine(); } } } -----
- Child Tree -