ホームページ >バックエンド開発 >C++ >Win32 API はプログラムですべてのデバイスを有効または無効にできますか?

Win32 API はプログラムですべてのデバイスを有効または無効にできますか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-06 02:04:40570ブラウズ

Can Win32 APIs Programmatically Enable or Disable All Devices?

Win32 API 経由でデバイスの状態を制御する

問題:
Win32 を使用してプログラムでデバイスを有効または無効にするAPI.

ディスカッション:

SetupDi API を使用してすべてのデバイスを無効または有効にできるわけではありません。デフォルトのマウス ドライバーはこの機能をサポートしていません。この制限は、PS/2 接続されたマウスをハードウェアに影響を与えることなくホットデタッチできないことから発生します。

Win32 API 経由でデバイスを無効にできるかどうかを確認するには、デバイス マネージャーの [無効] オプションを確認してください。存在しない場合、この方法ではデバイスを無効にすることはできません。

無効オプションが存在する場合は、次の手順に従います。

  1. デバイス クラス GUID を取得します。デバイス マネージャーの「プロパティ」で見つけます。 "ダイアログ。
  2. デバイス インスタンス パスの取得: デバイス マネージャーの「プロパティ」から取得します。
  3. 提供されたコードを使用してデバイスを有効または無効にします:
public static void EnableMouse(bool enable)
{
    // mouse class GUID
    Guid mouseGuid = new Guid("{4d36e96f-e325-11ce-bfc1-08002be10318}");
    
    // example instance path: @"\ACPI\PNP0F03&3688D3F&0"
    string instancePath = @"\ACPI\PNP0F03&3688D3F&0";
    
    DeviceHelper.SetDeviceEnabled(mouseGuid, instancePath, enable);
}

コード:

提供されたコードを参照してくださいDeviceHelper 内class.

制限事項:

このメソッドは、SetupDi API 経由で無効にできないデバイスでは失敗する可能性があります。

以上がWin32 API はプログラムですべてのデバイスを有効または無効にできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。