如何使用C#检测某个串口(COM)是否被占用?

nozer 2010-09-03 11:28:19
请知道的朋友说下详细的操作方法。

如果Open()那么到底怎么Open()?
如果IsOpen,那么到底怎么IsOpen?
...全文
3190 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
兔子-顾问 2010-09-03
  • 打赏
  • 举报
回复
public bool IsCommPortValid(int port)
{
try
{
SerialPort sp = new SerialPort("COM"+port.ToString());
sp.Close();
}
catch
{
return false;
}
}
nozer 2010-09-03
  • 打赏
  • 举报
回复
…………………………………………………………
nozer 2010-09-03
  • 打赏
  • 举报
回复
已经找到原因,谢谢了
nozer 2010-09-03
  • 打赏
  • 举报
回复
COM1被打开的话,再次打开 COM1确实提示“访问被拒绝”,但是我直接打开怎么就不行呢,我明明有设备在使用COM1啊
兔子-顾问 2010-09-03
  • 打赏
  • 举报
回复
你测试的问题
如果你测试代码修改一下为

string port = null;
port = Console.ReadLine();
SerialPort sp1 = new SerialPort("COM1");
sp1.Open();
SerialPort sp = new SerialPort("COM" + port);
try
{
sp.Open();
sp.Close();
Console.WriteLine("端口尚未打开");
}
catch (InvalidOperationException e)
{
Console.WriteLine("端口已打开");
}
catch(Exception ee)
{
Console.WriteLine( new Exception(ee.Message));
}



你输入1试试?
nozer 2010-09-03
  • 打赏
  • 举报
回复
除了这两个被占用的端口外,输入其他任意端口号都提示“System.Exception: 端口“COMXX”不存在。”
nozer 2010-09-03
  • 打赏
  • 举报
回复
我一号和二号串口都被设备占用了,但是我分别输入1和3后,显示的都是“端口尚未打开”
兔子-顾问 2010-09-03
  • 打赏
  • 举报
回复
你如何测试的?
假设有串口1,用你的代码。
在其他程序已经占用com1的情况下。输入1回车,提示是
System.Exception: 对端口“COM1”的访问被拒绝。
nozer 2010-09-03
  • 打赏
  • 举报
回复
我一号端口和三号端口都有使用,但是也没有抛异常啊
nozer 2010-09-03
  • 打赏
  • 举报
回复

string port = null;
port = Console.ReadLine();
SerialPort sp = new SerialPort("COM" + port);
try
{
sp.Open();
Thread.Sleep(1000);
sp.Close();
Console.WriteLine("端口尚未打开");
}
catch (InvalidOperationException e)
{
Console.WriteLine("端口已打开");
}
catch(Exception ee)
{
Console.WriteLine( new Exception(ee.Message));
}



端口明明被占用了,也没见抛异常啊
xiaotiange 2010-09-03
  • 打赏
  • 举报
回复
SeralPort.Open() ,open 方法
SerialPort.IsOpen() ,值为true就是已开;false已关
windsmht 2010-09-03
  • 打赏
  • 举报
回复
用个try,catch抓一下,串口占用直接会报占用的错误,打印出来就行了啊
他山玉 2010-09-03
  • 打赏
  • 举报
回复
有人回了,又不见楼主结贴。
myhuli120 2010-09-03
  • 打赏
  • 举报
回复
每天回帖即可获得10分可用分

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧