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?

War es hilfreich?

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;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top