主题:请叫:C#如何判断电脑有几个串口
zaiwu2000
[专家分:0] 发布于 2006-11-22 11:37:00
请叫:C#如何判断电脑有几个串口
回复列表 (共2个回复)
沙发
telancs [专家分:680] 发布于 2006-11-22 22:26:00
C#不知道,不过我知道C的
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
//删除所有项目
ListBox1->Clear();
//默认检测COM端口的返回值
HANDLE h = INVALID_HANDLE_VALUE;
//逐一进行COM 端口检测
for(int i=1;i<=32;i++)
{
AnsiString comname = "\\\\.\\COM" + String(i);
//打开COM端口,并返回检测值
h=::CreateFile( comname.c_str(),GENERIC_READ| GENERIC_WRITE,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
//若无法打开指定COM端口
if (h == INVALID_HANDLE_VALUE)
{
//取得错误信息
DWORD err = ::GetLastError();
//若 err 为 2 ,即此COM端口尚未安装
if(err!=2)
{
ListBox1->Items->Add("COM" + AnsiString(i) + " 尚未使用,错误信息为 (" + AnsiString((int)err) + ")");
}
}
else
{
ListBox1->Items->Add("COM" + AnsiString(i) + " 正在使用中!");
}
//释放handle
::CloseHandle(h);
}
}
//---------------------------------------------------------------------------
板凳
yizhinantian [专家分:640] 发布于 2006-11-23 12:44:00
建议考虑下System.Management空间的ManagementClass
我来回复