📄 unit1.~pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,Registry, StdCtrls, Buttons;
type
TForm1 = class(TForm)
BitBtn1: TBitBtn;
ComboBox1: TComboBox;
Memo1: TMemo;
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
Function GetPortList():TStringList;
var
reg : TRegistry;
ts : TStrings;
i : integer;
sName,sPort:string;
slList,slPort:TStringList;
begin
reg := TRegistry.Create;
ts := TStringList.Create;
slList:=TStringList.Create;
slPort:=TStringList.Create;
Result:=slPort;
//slPort.Clear;
try
reg.RootKey := HKEY_LOCAL_MACHINE;
reg.OpenKey('hardware\devicemap\serialcomm',false);
reg.GetValueNames(ts);
slList.Sorted:=true;
for i := 0 to ts.Count -1 do begin
sName:=LowerCase(Trim(ts.Strings[i]));
//showmessage(sname);
//得到串口名称
sPort := UpperCase(Trim(reg.ReadString(sName)));
if Copy(sPort,1,3) <> 'COM' then Continue;
sPort:=Copy(sPort,4,Length(sPort));
sPort:=FormatFloat('000',StrToInt(sPort));
slList.Add(sPort);
end;
slPort.Clear;
for i:=0 to slList.Count-1 do
slPort.Add('COM'+IntToStr(StrToInt(slList.Strings[i])));
Result:=slPort;
finally
ts.Free;
reg.CloseKey;
reg.free;
end;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var slPort:TStringList;
i:integer;
begin
slPort:=TStringList.Create;
slPort:=GetPortList();
//ComboBox1.Items.l
for i:=0 to slport.Count-1 do
memo1.Lines.Add(slport[i]);
ComboBox1.Items:=slPort;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -