📄 unit1.cpp
字号:
//---------------------------------------------------------------------------
// COM Port Lister and Status Checker version 1.0 <Borland C++ Builder>
//
// 2003-07-08 (c) dllee.ktop.com.tw by Lee,Dong-Liang<dllee@edirect168.com>
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//----------------------------------------------------------------------------//
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//----------------------------------------------------------------------------//
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
StringGrid1->Cells[0][0]="COM Port";
StringGrid1->Cells[1][0]="Physical Location";
StringGrid1->Cells[2][0]="In Use";
// [HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM]
// "\\Device\\PTSerial0"="COM3"
// "\\Device\\Serial0"="COM1"
TStringList *tmp=new TStringList;
TRegistry *reg=new TRegistry;
reg->RootKey=HKEY_LOCAL_MACHINE;
if(reg->OpenKey("\\HARDWARE\\DEVICEMAP\\SERIALCOMM",false))
{
reg->GetValueNames(tmp);
Label1->Caption="Total "+String(tmp->Count)+" COM Ports";
for(int i=0;i<tmp->Count;i++)
{
AnsiString asCOM=reg->ReadString(tmp->Strings[i]);
int iCOM=asCOM.SubString(4,1).ToIntDef(0);
if(iCOM>0 && iCOM<=255)
{
StringGrid1->Cells[0][iCOM]=asCOM;
StringGrid1->Cells[1][iCOM]=tmp->Strings[i];
}
}
reg->CloseKey();
}
delete reg;
delete tmp;
}
//----------------------------------------------------------------------------//
void __fastcall TForm1::Button1Click(TObject *Sender)
{
for(int i=1;i<256;i++)
{
if(StringGrid1->Cells[0][i].Length()>3)
{
HANDLE hComm;
hComm = CreateFile(StringGrid1->Cells[0][i].c_str(),
GENERIC_READ | GENERIC_WRITE, 0, 0,
OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0);
if (hComm == INVALID_HANDLE_VALUE)
{
StringGrid1->Cells[2][i]="in used";
}
else
{
StringGrid1->Cells[2][i]="is free";
CloseHandle(hComm);
}
}
}
ShowMessage("Check Completed!");
}
//----------------------------------------------------------------------------//
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Close();
}
//----------------------------------------------------------------------------//
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -