Die CPort-Komponenten könnten dir auch vielleicht helfen:
https://sourceforge.net/projects/comport/
Können alle Comports vom PC auslesen, und dann kannste damit auch noch einfach (ohne eigenes createfile usw.
) den comport testen.
Delphi-Quellcode:
var ls:TStringList;
I: Integer;
sCur:
String;
begin
ls:=TStringList.Create;
try
EnumComPorts(ls);
for I := 0
to ls.count-1
do
begin
try
sCur:=trim(ls.Strings[i]);
//die enum Funktion füllt rechts mit char(0), zumindest bei mir XD...
comport1.Port:=ls.Strings[i];
comport1.Open;
if ComPort1.Connected
then
Memo1.Lines.Add(sCur+'
geht')
else
Memo1.Lines.Add(sCur+'
?geht nicht?');
except on exception do {order auch die passendere}
Memo1.Lines.Add(sCur+'
geht nicht')
end;
end;
finally
ls.free;
end;
end;
=
CNCA0 geht
CNCB0 geht
COM2 geht nicht
COM7 geht
Die Cport macht nichts anderes als die Vorredner schon gesagt haben, in der Registry Ports auslesen, und Comport1.Open() macht irgendwo dann auch ein CreateFile()
Aber ist für den Anfang evtl. leicheter