C#でWMIを使用して、コンピュータのプリンタを列挙して変更しています。WMIを使用してWSDデバイス(特にプリンタ)を管理できますか?
私はWindows 7を実行していて、「古典的」にインストールされているプリンタを変更しようとするとすべて正常に動作しています。 「古典的」とは、プリンタが基本的なTCP/IPポートを使用しているということです。ここでは、ドキュメント化されたWMI関数を使用して、名前を変更したり、デフォルトのプリンタとして設定したりできます。http://msdn.microsoft.com/en-us/library/windows/desktop/aa394363(v=vs.85).aspx。
しかし、デフォルトでは、Windowsは自分のプリンタをWSD(Web Services on Devices)プリンタとしてインストールしています。これが起こると、プリンタはWMIを使用して触れることができないWSDポートを使用します。
以下のスクリーンショットで、私のプリンタが「WSDポート」を使用していることがわかります。そのポートの下には、私のプリンタがWSDなしでインストールしたときに使用する標準のTCP/IPポートがあります。
私のプリンタに付属のソフトウェアは、標準のTCP/IPポートを使用してプリンタをインストールします。しかし、プリンタを手動でインストールすると、WindowsはWSDポートを選択します。
WMIにはWSD対応デバイスの定義がないようです。これが本当なら誰でも知っていますか?
あなたが標準プリンタでできるように、プリンタを変更するには、WMIインターフェイスを使用することが可能であるならば、あなたは知っていますか? –
WMIインターフェイスとはどういう意味ですか?私はSystem.Management.ManagementClassを使用しています。 – Raymund
たとえば、 'Win32_Printer class'にはいくつかのメソッドがあります:http://msdn.microsoft.com/en-us/library/windows/desktop/aa394363(v= vs.85).aspx - これらのメソッドはWSDプリンタでは動作しませんでした。 –