Maison >développement back-end >C++ >Comment puis-je activer ou désactiver des périphériques par programme dans Win32 et quelles sont les limitations ?
Windows fournit des API de la famille SetupDi pour gérer les appareils par programme, y compris leur activation et leur désactivation . Cependant, tous les appareils ne prennent pas en charge la désactivation de cette façon.
Dans le cas des périphériques de souris, le pilote de souris par défaut compatible PS/2 ne prend pas en charge la désactivation via les API SetupDi en raison aux préoccupations concernant la déstabilisation du matériel lors du détachement à chaud d'anciennes souris à l'aide de connecteurs PS/2.
Pour déterminer si un appareil peut être désactivé à l'aide des API SetupDi, recherchez dans le Gestionnaire de périphériques une option « Désactiver ». Le cas échéant, vous pouvez utiliser les API SetupDi. En cas d'absence, vous vous retrouvez avec les options de communication IOCTL.
Si le pilote de votre souris prend en charge la désactivation via les API SetupDi, l'extrait de code suivant montre comment désactiver et réactiver -activez-le en utilisant C# et 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); }
Pour simplifier la tâche, vous pouvez utiliser la bibliothèque DeviceHelper à partir du bloc de code fourni. Il expose une méthode SetDeviceEnabled qui prend en entrée le GUID de la classe, l'ID de l'instance et l'indicateur d'activation/désactivation.
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!