c# - tarjeta - reiniciar puertos com windows 10
cómo cerrar un puerto serie utilizado por otro programa (2)
Esta pregunta de desbordamiento de pila es el primer paso: ¿Cómo obtengo la lista de identificadores de archivo abiertos por proceso en C #?
Una vez que tenga eso, puede modificar el código allí para cerrar el identificador, o simplemente matar el proceso que tiene el asa abierta.
Esto, sin embargo, es muy arriesgado *, propenso a problemas, y tendrá que ser rediseñado en base a implementaciones específicas (x32 vs x64 frente a ARM) más lo que ''COM1'' asigna a esa máquina en particular.
En caso de riesgo: si el puerto serie se está utilizando, por ejemplo, para instalar un nuevo firmware en un teléfono o similar, cerrar el puerto puede bloquear el dispositivo. Si el puerto se usa para transferir datos, entonces cerrar el puerto puede ocasionar la pérdida de datos.
Buena suerte. Pero por favor NO me culpe si destruye su sistema o pierde datos.
Estoy escribiendo un programa de SerialPort. A veces, cuando quiero abrir SerialPort, se lanza una Access Access no autorizada: se deniega el acceso a COM1. Esto se debe a que otro programa (que está escrito por otra persona y no tengo su soucecode) está usando COM1, y ese programa no cierra COM1 cuando sale. Quiero hacer 2 preguntas:
- ¿Cómo cerrar COM1 con mi código (especialmente el código C #) cuando es usado por otro programa?
- Si no puedo cerrar COM1 con código C #, ¿cómo puedo cerrar o liberar COM1 en el sistema operativo Windows?
Gracias.
Puede cerrar el puerto de comunicación en C # llamando
serialPort.Close();
Pero no puede cerrar el puerto COMM a menos que solo lo abra usted.
Asegúrese de que al cerrar su aplicación está cerrando el puerto de comunicación. Si puedes colocar el código, podemos investigarlo.