我的应用程序必须在另一个应用程序之后工作。第二个应用程序有一个错误导致COM端口在特定情况下不能关闭。
我想在我的应用程序中以编程方式关闭所有COM端口,以确保报告的关闭端口没有错误。如果我没有打开COM端口的对象,是否可能?
我需要一个关于.NET Framework的解决方案,C#。
答案 0 :(得分:6)
没有好的,简单的方法:
答案 1 :(得分:0)
我最近遇到过这个问题并且有一点点要添加......当设备管理器中启用和禁用设备时,大多数COM端口驱动程序会“解锁”端口。这意味着解决方案中描述了完成此任务的(C#)方法:
Win32 API function to programmatically enable/disable device
使用该解决方案进行COM端口时需要了解的信息是:
由于您说要重置所有端口,您可能希望修改该示例中的库以通过更改来遍历所有端口:
// Find the index of our instance. i.e. the touchpad mouse - I have 3 mice attached...
int index = GetIndexOfInstance(diSetHandle, diData, instanceId);
// Disable...
EnableDevice(diSetHandle, diData[index], enable);
这样的事情:
for (int index = 0; index < diData.Length; index++)
{
EnableDevice(diSetHandle, diData[index], enable);
}