Windows には、デバイスの有効化と無効化などをプログラムで管理するための SetupDi ファミリの API が用意されています。 。ただし、すべてのデバイスがこの方法での無効化をサポートしているわけではありません。
マウス デバイスの場合、デフォルトの PS/2 互換マウス ドライバーは SetupDi API による無効化をサポートしていません。 PS/2 コネクタを使用して実際の古いマウスをホットデタッチするときにハードウェアが不安定になることを懸念しています。
SetupDi API を使用してデバイスを無効にできるかどうかを判断するには、デバイス マネージャーで「無効」オプションを確認します。存在する場合は、SetupDi API を使用できます。存在しない場合は、IOCTL 通信オプションが残ります。
マウス ドライバーが SetupDi API による無効化をサポートしている場合、次のコード スニペットは無効化および再設定する方法を示しています。 -C# と P/Invoke を使用して有効にします:
public static void EnableMouse(bool enable) { Guid mouseGuid = new Guid("{4d36e96f-e325-11ce-bfc1-08002be10318}"); string instancePath = @"ACPI\PNP0F03&3688D3F&0"; DeviceHelper.SetDeviceEnabled(mouseGuid, instancePath, enable); }
タスクを簡素化するために、提供されたコード ブロックから DeviceHelper ライブラリを使用できます。これは、クラス GUID、インスタンス ID、および有効/無効フラグを入力として受け取る SetDeviceEnabled メソッドを公開します。
以上がWin32 でデバイスをプログラムで有効または無効にする方法と制限事項は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。