Einzelnen Beitrag anzeigen

DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#3

Re: Auflistung aller 'verfügbaren' Comports

  Alt 7. Feb 2007, 17:53
@Der_Unwissende:

Hi lange nix voneinander gehört

mich interessieren hierbei nur die Comports, die die Windows API auch wirklich öffnen kann.
D.h. es kann ja noch eine virtuelle Comport Leiche in der Registry stehen z.B.: Com10,
diese aber gar nicht mehr im System ist (USB auf RS232 ist ausgesteckt), dann wäre es nicht sinvoll diese anzuzeigen.
Bzw. wenn ein Programm die Schnittstelle belegt, dann brauch diese auch nicht in meiner Liste.

Ich habe es jetzt so gelöst:
Ich filtere die Liste und gucke ob die API darauf zugreifen kann, wenn nicht, dann entferne ich den Por aus der Liste.

Delphi-Quellcode:
  for I := 0 to _PList.Count - 1 do // Stringlist mit zB.['COM1','COM3',...]
  begin
    hPort := CreateFile( PChar( _PList.Strings[i] ),
      GENERIC_READ or GENERIC_WRITE,
      0,
      nil,
      OPEN_EXISTING,
      0,
      0 );
    if ( hPort = INVALID_HANDLE_VALUE ) then
      _PList.Delete(i);
    CloseHandle( hPort );
  end;
Ich denke so kann man es machen, oder?
Gruß
DelphiManiac
  Mit Zitat antworten Zitat