En relation avec this question, mais ... est-il possible de déclencher via l'API un nouveau balayage de périphérique matériel? J'ai un périphérique Bluetooth de port série que j'associe automatiquement via des appels d'API avec 32feet.net .NET Bluetooth, ce qui fonctionne très bien. Bien que je puisse interroger les services série lors de l'analyse du périphérique, les ports COM n'apparaissent pas dans l'onglet Ports COM de la boîte de dialogue Périphériques Bluetooth.Existe-t-il un appel d'API pour lancer une analyse pour les périphériques matériels
Répondre
liés à Programmatically uninstall a device in windows device manager
Ma réponse à partir de là:
Pour forcer le « scan pour le matériel modifications » achat « How To Force Reenumeration of a Device Tree From an Application » l'échantillon il montre comment forcer l'ensemble de l'arbre à être re-énuméré.
Est-ce que ma réponse à l'aide suivante? How can I find out a COM port number of a bluetooth device in c#?
En bref, utilisez System.IO.Ports.SerialPort.GetPortNames()
ou WMI pour répertorier les ports série, par ex. Commande PowerShell:
C:\> Get-WmiObject -query "select DeviceID,PNPDeviceID from Win32_SerialPort"
Ce qui peut également être fait dans le code.
Vous ne savez pas si cela aidera votre problème global, mais cela devrait répondre à la question dans votre première phrase. À l'origine, j'ai fait quelque chose comme ça en utilisant l'installateur NSIS de Nullsoft il y a quelques années.
Si vous voulez juste pour déclencher une analyse du matériel de vanille vous pouvez utiliser le code suivant (fourni en C# par la balise .net dans cette question):
C'est la classe wrapper pour les fonctions P/Invoke
public static class Win32Api
{
public const int CM_LOCATE_DEVNODE_NORMAL = 0x00000000;
public const int CM_REENUMERATE_NORMAL = 0x00000000;
public const int CR_SUCCESS = 0x00000000;
[DllImport("CfgMgr32.dll", SetLastError=true)]
public static extern int CM_Locate_DevNodeA(ref int pdnDevInst, string pDeviceID, int ulFlags);
[DllImport("CfgMgr32.dll", SetLastError=true)]
public static extern int CM_Reenumerate_DevNode(int dnDevInst, int ulFlags);
}
Ceci est un exemple de la façon de les utiliser
int pdnDevInst = 0;
if (Win32Api.CM_Locate_DevNodeA(ref pdnDevInst, null, Win32Api.CM_LOCATE_DEVNODE_NORMAL) != Win32Api.CR_SUCCESS)
throw new Exception("something...");
if (Win32Api.CM_Reenumerate_DevNode(pdnDevInst, Win32Api.CM_REENUMERATE_NORMAL) != Win32Api.CR_SUCCESS)
throw new Exception("something else...");
Je l'ai rapidement traduit à partir des documents MSDN C++ et je l'ai testé dans un spike, donc je sais que cela fonctionne mais ce n'est pas la qualité de production. En outre, si vous vous intéressez aux codes de retour spécifiques, vous pouvez les rechercher dans cfgmgr32.h.
n'a pas regardé les réponses précédentes, mais juste au cas où vous pensiez que j'ai copié ici la version originale que j'ai faite dans NSIS: http://forums.winamp.com/showthread.php?t=192348 –
Aussi, le mien est en C# et l'échantillon MS est en VB classique. –
Fonctionne comme un charme. Avis: VOUS DEVEZ EXÉCUTER LES APPELS WINAPI AVEC DES DROITS ADMINISTRATIFS! Testé sur Windows 8 x64 – JanW
Juste trouvé this SO post qui peut aussi résoudre mon problème ou d'autres qui trouvent cette question.
- 1. Pour lancer ou pour appeler un appel?
- 2. .NET PerformanceCounter pour les défauts matériels/sec
- 3. Obtenir les informations matérielles pour les matériels non installés
- 4. ASP.NET Web App pour comparer les performances sur différents matériels?
- 5. API HTML pour les périphériques tactiles?
- 6. OAuth2 Flow pour les périphériques mobiles
- 7. Comment lancer un appel ajax après un autre appel ajax?
- 8. Mécanismes matériels
- 9. Commande RPC pour lancer une installation logicielle
- 10. quels périphériques matériels multi-touch sont-ils programmables via Adobe AIR 2?
- 11. Couches de protocole OSI pour divers matériels réseau
- 12. Comment lancer un flux RTP dans un appel SIP/SDP
- 13. analyse du journal pour les rails
- 14. Analyse d'un MovieClip pour les enfants?
- 15. Analyse HTML pour les liens de domaine
- 16. Analyse des données pour les tableaux bruyants
- 17. Analyse d'un XSD pour lister les éléments
- 18. Analyse PDF pour une application eBook
- 19. Bibliothèques JavaScript pour les périphériques à écran tactile
- 20. Module orienté objet/définition pour les périphériques réseau/topologie?
- 21. touche de raccourci pour lancer une application
- 22. Comment écrire des fichiers d'en-tête pour les périphériques
- 23. Configuration d'affichages pour différents périphériques mobiles
- 24. Utiliser tel: url pour lancer un appel ne retourne pas de contrôle
- 25. Analyse de la mémoire pour un processus
- 26. jQuery analyse XML pour faire un diaporama
- 27. Comment lancer un appel depuis mon application iPhone?
- 28. appel ou lancer externe Application Android
- 29. jQuery Ajax appel pour les boutons sur une liste
- 30. analyse simple html pour iphone
Merci Ruddy, ça sonne bien. Je vais essayer bientôt. – kenny