Heim >Backend-Entwicklung >C++ >Wie kann ich Geräte in Win32 programmgesteuert aktivieren oder deaktivieren und welche Einschränkungen gibt es?
Windows bietet APIs in der SetupDi-Familie für die programmgesteuerte Verwaltung von Geräten, einschließlich deren Aktivierung und Deaktivierung . Allerdings unterstützen nicht alle Geräte die Deaktivierung auf diese Weise.
Bei Mausgeräten unterstützt der standardmäßige PS/2-kompatible Maustreiber die Deaktivierung über SetupDi-APIs aus diesem Grund nicht zu Bedenken hinsichtlich einer Destabilisierung der Hardware, wenn tatsächlich alte Mäuse mit PS/2-Anschlüssen im laufenden Betrieb getrennt werden.
Um festzustellen, ob ein Gerät mithilfe der SetupDi-APIs deaktiviert werden kann, überprüfen Sie im Geräte-Manager die Option „Deaktivieren“. Falls vorhanden, können Sie die SetupDi-APIs verwenden. Bei Abwesenheit bleiben Ihnen die IOCTL-Kommunikationsoptionen.
Wenn Ihr Maustreiber die Deaktivierung über SetupDi-APIs unterstützt, zeigt das folgende Codefragment, wie Sie es deaktivieren und erneut aktivieren -Aktivieren Sie es mit C# und 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); }
Um die Aufgabe zu vereinfachen, können Sie die DeviceHelper-Bibliothek aus dem bereitgestellten Codeblock verwenden. Es stellt eine SetDeviceEnabled-Methode bereit, die als Eingabe die Klassen-GUID, die Instanz-ID und das Aktivierungs-/Deaktivierungsflag verwendet.
Das obige ist der detaillierte Inhalt vonWie kann ich Geräte in Win32 programmgesteuert aktivieren oder deaktivieren und welche Einschränkungen gibt es?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!