15

C#.NET からシステム デバイスを無効にする方法はありますか。

基本的に、デバイスマネージャーに移動してデバイスを無効にするときにエミュレートしますか?

呼び出すことができる WinAPI 関数があると仮定していますが、それがどれかわかりません。

これを行う必要があるのは、デバイスを無効にしてすぐに有効にする必要があるためです。

Windows XP および Vista (x86 & x64) で作業する必要があります。「DevCon」と呼ばれるものを見ましたが、Vista x64 では動作しないようです。

ありがとう。

答えについては、こちらを参照してください:プログラムでシステム デバイスを無効にするにはどうすればよいですか?

4

2 に答える 2

10

Mel Greenの答えをさらに推し進めるために、ハードウェアヘルパーライブラリは相互運用機能を使用してWindows API(setupapi)、具体的にはSetupDiSetClassInstallParamsメソッドを呼び出します。もちろん、デバイスの詳細などを検索するために使用される他の呼び出しがここにあります。

標準ユーザーまたは非特権アカウントとして実行している場合、これを使用してハードウェアデバイスを制御(有効化/無効化など)することはできないことを考慮してください。

詳細については、http://www.pinvoke.netを参照してください(具体的な呼び出しについては、http://pinvoke.net/default.aspx/setupapi.SetupDiSetClassInstallParamを参照してください) 。

于 2008-10-31T03:13:04.787 に答える
4

これは古い質問であることは知っていますが、同じ問題に遭遇しました。これを解決するには、 TechNet wikiで入手できる新しい DevCon を使用する必要がありました。CodeProject の記事は役に立ちましたが、最終的には、更新された DevCon に頼るほうが簡単でした。残念ながら、600MB を超えるWindows Driver Kitでしか利用できないようです。

于 2011-01-21T00:21:29.600 に答える