Einzelnen Beitrag anzeigen

Benutzerbild von ErazerZ
ErazerZ

Registriert seit: 27. Mai 2005
Ort: Baden
315 Beiträge
 
Delphi 2007 Enterprise
 
#15

Re: COM ports im Griff bekommen

  Alt 12. Jun 2007, 07:29
Zitat von WS1976:
Hallo Robert,

Sysinternals bringt uns keinen Schritt weiter. Wie willst du die Tools in deinem eigenen prog verwenden? Wir haben uns da schwindlig gesucht und nichts gefunden.
Ich meine ich habe irgendwo ein Stück Code mit dem man ( ohne try and error ) feststellen kann ob die com offen ist oder nicht.
Ich suche danach. Wenn ich fündig werde stell ich das hier ein.

Grüsse
Rainer
Naja das ist ganz einfach, zum Beispiel:
Delphi-Quellcode:
{
  Result: Wenn benutzt wird dann True, sonst False.
}

function IsComOpen(wPort: Word): Boolean;
var
  hCom: THandle;
const
  lpszPort = '\\.\COM%d\';
begin
  Result := True;
  hCom := CreateFile(PChar(Format(lpszPort, [wPort])), GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0);
  if (hCom <> INVALID_HANDLE_VALUE) then
  begin
    Result := not CloseHandle(hCom);
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  if IsComOpen(1) then
    ShowMessage('Wird benutzt')
  else
    ShowMessage('Geht scho!');
end;
  Mit Zitat antworten Zitat