Maison >développement back-end >C++ >Les API Win32 peuvent-elles activer ou désactiver par programme tous les appareils ?
Problème :
Activation ou désactivation des appareils par programmation à l'aide des API Win32.
Discussion :
Pas tous les appareils peuvent être désactivés ou activés via les API SetupDi. Les pilotes de souris par défaut ne prennent pas en charge cette fonctionnalité. Cette limitation résulte de l'impossibilité de détacher à chaud des souris connectées PS/2 sans conséquences matérielles.
Pour vérifier si un appareil peut être désactivé via les API Win32, cochez l'option « Désactiver » dans le Gestionnaire de périphériques. S'il est absent, l'appareil ne peut pas être désactivé de cette façon.
Si l'option Désactiver est présente, suivez ces étapes :
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); }
Code :
Référez-vous au code fourni dans le DeviceHelper class.
Limitations :
Cette méthode peut échouer pour les appareils qui ne peuvent pas être désactivés via les API SetupDi.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!