C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.57295 の関連記事表示

<< 0 >>
■57295  Re[4]: 印刷ジョブを取り消すプログラム
□投稿者/ さとすけ -(2011/02/21(Mon) 19:08:27)
    ご回答ありがとうございます。
    仰るとおり .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();
    		}
    	}
    }
    -----
    
記事No.57277 のレス /過去ログ96より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -