vb.net - studio - ¿Cómo determino qué proceso está usando un puerto serie?
serialport read visual basic (3)
Como dijo Rob Walker , puedes encontrar quién está usando un puerto serie usando Process Explorer . La mayoría de las veces, al presionar Ctrl + F y buscar "serie", veré quién tiene un puerto serie abierto, pero me encontré con una situación en la que el asa del puerto serie "COM3" apareció como "/ Device / VCP0". Puede ser extraño porque se estaba ejecutando bajo VirtualBox con un conector de USB a serie.
Si la búsqueda de "serie" y "dispositivo / vcp" no le dan ningún resultado, es posible que pueda averiguar cómo se nombran los identificadores de puerto serie abriendo uno con un programa conocido. En Process Explorer, muestre el panel inferior con los controles abiertos de cada proceso al presionar Ctrl + L. Haga clic en el proceso que utilizó para abrir el puerto serie y mirar a través del panel inferior para ver qué asas parecen ser un puerto serie. Puede abrir y cerrar el puerto mientras mira, y el identificador del archivo debería aparecer y desaparecer, además de resaltarse en verde o rojo. Por supuesto, esto solo es posible si tiene más de un puerto serie o si el puerto serie que intenta diagnosticar no siempre está bloqueado por algún proceso misterioso.
La empresa para la que trabajo fabrica hardware que se comunica con la computadora a través de un puerto serie. Las empresas de terceros escriben software que se comunica con nuestro hardware.
Hay momentos en que necesito diagnosticar nuestro hardware. Sin embargo, una aplicación de software de terceros se conecta al puerto serie cuando Windows se inicia, bloqueando cualquier otra conexión. No sé el nombre de esta aplicación / servicio y no siempre es el mismo.
¿Hay alguna forma de:
- Encuentre el nombre / pid de la aplicación / servicio que está usando actualmente un puerto serial o
- Roba la conexión del puerto serie desde otra aplicación.
vb.net de preferencia, pero tomaré una respuesta agnóstica de idioma también.
Puede utilizar la herramienta de explorador de procesos también desde SysInternals para buscar controladores abiertos. En este caso, querrá buscar ''Serial'' ya que utiliza nombres de dispositivo que pueden no corresponderse con números de puerto de comunicación. (por ejemplo, COM1 es / Device / Serial0 en mi sistema).
Si desea tomar el control del puerto serie desde otra aplicación, creo que necesitaría la cooperación del controlador.
Sysinternals tiene una gran cantidad de utilidades que considero muy útiles y educativas para rastrear qué procesos están haciendo al sistema.
Tienen una utilidad que hace exactamente lo que necesita llamado Portmon , y brindan información sobre cómo funciona cerca de la parte inferior de la página. Esa información y algunas preguntas bien hechas probablemente le darán todo lo que necesita para implementarla usted mismo si la utilidad no es suficiente.
-Adán