インストールされているプリンタのステータスを取得するために、C#/ NETではどのようなオプションが利用できますか?必要な情報は、プリンタの電源が入っているかオフになっているか(画面上に「プリンタ準備完了」または「プリンタオフライン」と表示されています)の情報だけです。プリンタの状態を取得するためのWMIの代替手段はありますか?
私たちのアプリケーションは、組み込みPC上で動作する小さなクライアントです。 WMI Windowsプロセスのメモリが不足していることがわかりました。私の開発PCで見ると、ゆっくりとしたメモリ容量がゆっくりとしているので、メモリリークが発生しているようです。メモリが限られている組み込み機器では、これは受け入れられず、数時間後にアプリケーションがクラッシュすることがあります。
メモリリークを処理しようとしましたか? –
WMIプロセス(wmiprvse.exe)が増えているので、メモリリークが自分のコントロール外にあるようです。私は毎秒次のループを実行しています。 - 'ManagementObjectSearcher searcher = new ManagementObjectSearcher(" SELECT * FROM Win32_Printer "); foreachの(searcher.GetでするManagementObjectプリンタ()){ が//プリンタの名前を確認すると、オフライン作業プロパティ の値でイベントを発火} ' – Adam
それはまだあなたのコードではないことが考えられもう一方の端を解放する。ただ1つの 'ManagementObjectSearcher 'を使ってみてください –