Question

L'entreprise pour laquelle je travaille fabrique du matériel qui communique avec l'ordinateur via un port série.Des sociétés tierces écrivent des logiciels qui communiquent avec notre matériel.

Il y a des moments où j'ai besoin de diagnostiquer notre matériel.Cependant, une application logicielle tierce se connecte au port série au démarrage de Windows, bloquant toute autre connexion.Je ne connais pas le nom de cette application/service et ce n'est pas toujours le même.

Existe-t-il un moyen de :

  • Recherchez le nom/pid de l'application/du service qui utilise actuellement un port série donné ou
  • Volez la connexion du port série à partir d’une autre application.

vb.net de préférence, mais je prendrai également une réponse indépendante de la langue.

Était-ce utile?

La solution

Vous pouvez utiliser le Explorateur de processus outil également de SysInternals pour rechercher des poignées ouvertes.Dans ce cas, vous souhaiterez rechercher « Série » car il utilise des noms de périphériques qui peuvent ne pas correspondre aux numéros de port COM.(par exemple.COM1 est \Device\Serial0 sur mon système).

Si vous souhaitez prendre le contrôle du port série depuis une autre application, je pense que vous aurez besoin de la coopération du pilote.

Autres conseils

Comme Rob Walker a dit, vous pouvez trouver qui utilise un port série en utilisant Explorateur de processus.La plupart du temps, en tapant Ctrl+F et la recherche de "série" vous montrera qui a un port série ouvert, mais je viens de tomber sur une situation où le handle de mon port série "COM3" apparaissait comme "\Device\VCP0".Cela peut paraître étrange car il fonctionnait sous VirtualBox avec un connecteur USB vers série.

Si la recherche de "série" et "périphérique\vcp" ne vous donne aucun résultat, vous pourrez peut-être comprendre comment les descripteurs de port série sont nommés en en ouvrant un avec un programme connu.Dans Process Explorer, affichez le volet inférieur avec les poignées ouvertes de chaque processus en tapant Ctrl+L.Cliquez sur le processus que vous avez utilisé pour ouvrir le port série et regardez dans le volet inférieur pour voir quelles poignées semblent être un port série.Vous pouvez ouvrir et fermer le port pendant que vous recherchez, et le descripteur de fichier devrait apparaître et disparaître, tout en étant surligné en vert ou en rouge.Bien sûr, cela n'est possible que si vous disposez de plusieurs ports série ou si le port série que vous essayez de diagnostiquer n'est pas toujours verrouillé par un processus mystérieux.

Sysinternes dispose d'une multitude d'utilitaires que je trouve très utiles et pédagogiques pour déterminer les effets des processus sur le système.

Ils ont un utilitaire qui fait exactement ce dont vous avez besoin appelé Portmon, et donnez quelques informations sur son fonctionnement en bas de la page.Ces informations et quelques questions bien posées vous donneront probablement tout ce dont vous avez besoin pour l'implémenter vous-même si l'utilitaire ne suffit pas.

-Adam

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top