Heim > Backend-Entwicklung > C++ > Können Win32-APIs alle Geräte programmgesteuert aktivieren oder deaktivieren?

Können Win32-APIs alle Geräte programmgesteuert aktivieren oder deaktivieren?

Barbara Streisand
Freigeben: 2025-01-06 02:04:40
Original
558 Leute haben es durchsucht

Can Win32 APIs Programmatically Enable or Disable All Devices?

Gerätestatus über Win32-API steuern

Problem:
Geräte programmgesteuert über Win32-APIs aktivieren oder deaktivieren.

Diskussion:

Nicht alle Geräte können das über SetupDi-APIs deaktiviert oder aktiviert werden. Standardmaustreiber unterstützen diese Funktionalität nicht. Diese Einschränkung ergibt sich aus der Unfähigkeit, PS/2-verbundene Mäuse im laufenden Betrieb ohne Konsequenzen für die Hardware zu trennen.

Um zu überprüfen, ob ein Gerät über Win32-APIs deaktiviert werden kann, aktivieren Sie die Option „Deaktivieren“ im Geräte-Manager. Wenn das Gerät nicht vorhanden ist, kann es auf diese Weise nicht deaktiviert werden.

Wenn die Option „Deaktivieren“ vorhanden ist, befolgen Sie diese Schritte:

  1. Rufen Sie die Geräteklassen-GUID ab: Finden Sie sie in den „Eigenschaften“ des Geräte-Managers " Dialog.
  2. Den Geräteinstanzpfad abrufen: Rufen Sie ihn aus den „Eigenschaften“ des Geräte-Managers ab. Dialog.
  3. Verwenden Sie den bereitgestellten Code, um das Gerät zu aktivieren oder zu deaktivieren:
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);
}
Nach dem Login kopieren

Code:

Beziehen Sie sich auf den bereitgestellten Code im DeviceHelper Klasse.

Einschränkungen:

Diese Methode kann bei Geräten fehlschlagen, die nicht über SetupDi-APIs deaktiviert werden können.

Das obige ist der detaillierte Inhalt vonKönnen Win32-APIs alle Geräte programmgesteuert aktivieren oder deaktivieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage