[英]What program or process is using a specific serial port in C#
当我在我的C#程序中尝试使用com端口时,有时端口是打开的并且被另一个程序使用。 我希望具体并生成如下警告消息:
“其他程序名为SomeApplication
使用COM1
端口。是否要关闭该程序(请注意,您可能会丢失数据或其他后果)?” -Yes
-No
如何在C#中实现这种情况?
这在Windows上不受支持,它需要步行未记录的内核结构,这些内核结构只能在内核代码中访问。 保持隐藏此信息是非常有意的,阻止程序完全按照您的想法进行操作,从而终止获取资源的过程。 一般来说,这是针对恶意软件的一种对策,它试图利用处理循环攻击。
您的用户可以使用SysInternals的Handle实用程序来查找该过程,假设他不知道哪个应该是罕见的。 在C#代码中执行Handle.exe所做的事情是一个非常长的镜头,你永远不应该承诺。 它动态安装设备驱动程序,以便获得第0个访问内核数据的权限。 并且Windows版本之间的内核结构发生了变化,并且在将来的版本中可能会再次发生变化。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.