Aufzählen eine Liste der Systeme COM-Anschlüsse in Delphi
-
03-07-2019 - |
Frage
Ziel:. Ich mag den verfügbaren COM-Ports auf einem System in Delphi zur Liste der Lage sein,
Hausaufgaben:
Ich habe diese fädeln SO auf den LPT Aufzählen Ports eines Systems der Registrierung verwenden. Ich habe auch festgestellt, dass der COM-Ports in der Registrierung bei HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM
aufgeführt ist, aber gefunden unbeantwortet gesticulation in dem dieses Beispielcode , fand ich, dass es überhaupt keinen COM-Ports zur Liste erschien.
Frage: Was ist der sicherste Weg (über unbekannte Windows-Versionen), um den COM-Ports auf einem Windows-Rechner zur Liste?
Lösung
DEVICEMAP \ SERIALCOMM für alle NT-Versionen gut ist. Sie werden wahrscheinlich unter DYN_DATA für Win9x suchen.
Verwenden Sie dieser Methode , wenn Sie Laufzeit Zuverlässigkeit benötigen.
Andere Tipps
Bitte gehen Sie durch URL, die in C ++ geschrieben ist
http://www.codeproject.com/KB/system/serial_portsenum_fifo.aspx
und gleiche Ansatz kann auch in delphi umgesetzt werden .. oder jemand kann in SO für Sie konvertieren ..
Dies wird für alle Windows-Versionen arbeiten, da dies aus dem Prinzip der Gerätemanager arbeitet, die für alle Windows-Versionen zur Verfügung.
Dies ist der Code für Linux nicht für WINDOWS ....
function GetSerialPortNames: string;
var
Index: Integer;
Data: string;
TmpPorts: String;
sr : TSearchRec;
begin
try
TmpPorts := '';
if FindFirst('/dev/ttyS*', $FFFFFFFF, sr) = 0 then
begin
repeat
if (sr.Attr and $FFFFFFFF) = Sr.Attr then
begin
data := sr.Name;
index := length(data);
while (index > 1) and (data[index] <> '/') do
index := index - 1;
TmpPorts := TmpPorts + ' ' + copy(data, 1, index + 1);
end;
until FindNext(sr) <> 0;
end;
FindClose(sr);
finally
Result:=TmpPorts;
end;
end;