怎样用delphi获得计算机设备管理器中的COM号,可以用什么语句来检测。请高手指教谢谢
发布网友
发布时间:2022-05-05 16:46
我来回答
共3个回答
热心网友
时间:2023-10-09 02:17
// 端口是否有效
function CheckPortStatus(nPort: Integer): TPORT_STATUS;
var
hComm : Cardinal;
begin
hComm := CreateFile (PChar( '\\.\' + PortSNToName( nPort )),
GENERIC_READ or GENERIC_WRITE,
0,
nil,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL or FILE_FLAG_OVERLAPPED,
0);
if GetLastError = ERROR_ACCESS_DENIED then
Result := psBusy
else if hComm <> INVALID_HANDLE_VALUE then
Result := psAvail
else
result := psNone;
CloseHandle( hComm );
end;
// 获取所有串口
procere GetAllCommPorts( APortList : TStrings );
var
i : Integer;
begin
APortList.Clear;
APortList.Add( EmptyStr ); // 用于ComboList
for i := 1 to 40 do
if CheckPortStatus( i ) <> psNone then
APortList.Add( PortSNToName( i ) );
end;
热心网友
时间:2023-10-09 02:17
读注册表就可以知道有多少个COM了:
[HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM]
"\\Device\\Serial0"="COM1"
热心网友
时间:2023-10-09 02:18
还是看看注册表的准啊
[HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM]
"\\Device\\Serial0"="COM1"