我使用的是SPCOMM控件,但想问下怎么获取本机的串口名称呢,因为我硬件上使用2303的这个USB口转串口的IC,当接到电脑的USB口后有的电脑显示转换的是COM4有的是COM3 但是我想问下如果我使用SPCOMM这个控件能随意的修改COMM1NAME这个属性来达到我接到不同的电脑上时显示的COM4不同的名称吗?并且如果获取串口的名称呢?
解决方案 »
- 怎么得到一个动态数组的维数?
- 如何判断当前鼠标是否在某个控件上(注意:有可能都个控件重合在一起)
- BDE可以连SQL Server 2005吗?
- 有model来电显示经验的朋友请进(我的程序只能得到ring)
- 大哥大姐门帮帮我啊,要被老板开除了
- 为什么用delphi6编corba是出现"file not foun:orbpas.dcu"
- 使用delphi7 调用 ASP.Net编写的一个webservices
- 报表生成有几种方法?
- 招聘2位高级程序员:开发过OA系统并有丰富经验的,有意者留下联系地址,最好做个自我简介!
- DateTimePicker 的问题
- delphi6线程类报诡异问题
- 如何读XML文件?
var
KeyHandle: HKEY;
ErrCode, Index: Integer;
ValueName, Data: string;
ValueLen, DataLen, ValueType: DWORD;
TmpPorts: TStringList;
begin
ErrCode := RegOpenKeyEx(
HKEY_LOCAL_MACHINE,
'HARDWARE\DEVICEMAP\SERIALCOMM',
0,
KEY_READ,
KeyHandle); if ErrCode <> ERROR_SUCCESS then
Exit; // raise EComPort.Create(CError_RegError, ErrCode); TmpPorts := TStringList.Create;
try
Index := 0;
repeat
ValueLen := 256;
DataLen := 256;
SetLength(ValueName, ValueLen);
SetLength(Data, DataLen);
ErrCode := RegEnumValue(
KeyHandle,
Index,
PChar(ValueName),
Cardinal(ValueLen),
nil,
@ValueType,
PByte(PChar(Data)),
@DataLen); if ErrCode = ERROR_SUCCESS then
begin
SetLength(Data, DataLen);
TmpPorts.Add(Data);
Inc(Index);
end
else
if ErrCode <> ERROR_NO_MORE_ITEMS then
exit; //raise EComPort.Create(CError_RegError, ErrCode); until (ErrCode <> ERROR_SUCCESS) ; TmpPorts.Sort;
Ports.Assign(TmpPorts);
finally
RegCloseKey(KeyHandle);
TmpPorts.Free;
end;end;