AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

belegte ComPorts anzeigen, wie?

Ein Thema von Steph.Delphi · begonnen am 7. Jul 2010 · letzter Beitrag vom 9. Jul 2010
Antwort Antwort
Steph.Delphi

Registriert seit: 7. Jul 2010
2 Beiträge
 
Delphi 2 Desktop
 
#1

belegte ComPorts anzeigen, wie?

  Alt 7. Jul 2010, 14:47
Hallo
Gibt es einen Delphi Befehl mit dem man rausbekommen kann, welche ComPorts unter Windows gerade in Verwendung sind? Noch perfekter als nur die Info belegt ja/nein wäre natürlich auch noch den Text zu kriegen, den Windows im Geräte Manager vor den Port schreibt. Da mehrere Geräte verbunden sind könnte man so recht einfach das richtige finden, geht aber sicher auch anders.

Wäre nett, wenn da Jemand nen Tip hätte.
  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: belegte ComPorts anzeigen, wie?

  Alt 7. Jul 2010, 15:00
Hallo,

ich bin sonst kein Freund von Antworten die nur Links enthalten, aber hier mal ein Thread der dir sicher weiter helfen sollte: http://www.delphipraxis.net/118592-c...-auslesen.html.

Noch kurz anbei:
  • Die Namen wie sie im Gerätemanager stehen sind die Friendlynames.
  • Ob es einen COM-Port gibt und ob er belegt ist, lässt sich auch über ausprobieren herausbekommen (alle COM-Ports von 1-256 durchprobieren)

Greez, Chris

P.S.: Willkommen in der DP
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules
  Mit Zitat antworten Zitat
Benutzerbild von Cyberbob
Cyberbob

Registriert seit: 24. Jan 2005
Ort: Karben
626 Beiträge
 
Delphi XE7 Architect
 
#3

AW: belegte ComPorts anzeigen, wie?

  Alt 7. Jul 2010, 16:35
Welche es gibt, müsste doch in der Registry stehen. Alles ausprobieren ist doch etwas overhead und wäre zuviel des guten. wie machen das andere Tools?
zum auflisten der vorhandenen ports findet sich hier auch einiges in der dp (ich ha mal was aus der codesammlung in einem meiner programme genutzt)
Christian
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#4

AW: belegte ComPorts anzeigen, wie?

  Alt 7. Jul 2010, 19:15
...[*] Ob es einen COM-Port gibt und ob er belegt ist, lässt sich auch über ausprobieren herausbekommen (alle COM-Ports von 1-256 durchprobieren)
Hallo,

die Frage ist, was heisst belegt genau: man kann nur feststellen, dass ein COM-Port z.B. von einem laufenden Fax-Programm benutzt wird. Läuft das Fax-Programm gerade nicht, ist der COM-Port für das System frei.

Ob an einem Com-Port was angeschlossen ist, z.B. ein Fax-Modem, lässt sich überhaupt nicht sicher feststellen (es kann ja auch abgeschaltet sein), und jeder Versuch das festzustellen, kann das angeschlossene Gerät stören bis hin zum Zusammenbruch.

Gruss Reinhard
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: belegte ComPorts anzeigen, wie?

  Alt 7. Jul 2010, 19:31
CrossPost DF
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Cyberbob
Cyberbob

Registriert seit: 24. Jan 2005
Ort: Karben
626 Beiträge
 
Delphi XE7 Architect
 
#6

AW: belegte ComPorts anzeigen, wie?

  Alt 7. Jul 2010, 20:58
Es ist ein Unterschied, ob ich meinen USB-Seriell-Wandler a mein Laptop angeschlossen habe oder nicht. Etwas ganz anderes ist es, ob ich in einem meiner Programme dann auch noch den Port nutze.
Dann kommt noch die Frage, was das genau für ein Port ist und von welchem Programm er wofür genutzt wird. (Com-Port, Bluetooth, GPS, etc.)
Ich hab zum beispiel im moment keinen Wandler dran hängen und trotzdem werden mir von Windows 3 Ports als Belebt angezeigt!
Christian
  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: belegte ComPorts anzeigen, wie?

  Alt 8. Jul 2010, 08:05
Hallo,

...Welche es gibt, müsste doch in der Registry stehen. Alles ausprobieren ist doch etwas overhead und wäre zuviel des guten...
also ich habe mich ja auch schon damit beschäftigt. Und es wird ja auch durchaus so von anderen vorgeschlagen http://www.delphipraxis.net/811647-post3.html in dem Post den ich in #2 vorgeschlagen habe. Also sowohl Registry und SetupAPI als auch Durchprobieren.

Das man schlussendlich per SW schwer sagen kann, ob dieser benutzt werden darf - was ja etwas völlig anderes ist als ob er belegt ist - dass ist tatsächlich schwer

Aber das haben ja hier auch schon ein paar andere Festgestellt

Greez, Chris
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#8

AW: belegte ComPorts anzeigen, wie?

  Alt 9. Jul 2010, 12:35
Zeigt belegte COMPORTS an:

Delphi-Quellcode:
.
.
  private
    { Private declarations }
    procedure InitializeSerialPorts;
    procedure WMDeviceChange(Var Msg:TMessage); message WM_DEVICECHANGE;
.
.
procedure TForm1.WMDeviceChange(Var Msg:TMessage);
begin
if Msg.Msg=WM_DEVICECHANGE then BEGIN
WindowsBeep(1000,50);
InitializeSerialPorts;
END;
end;

procedure TForm1.InitializeSerialPorts;
var
  port: string;
  i: Integer;
  config: TCommConfig;
  cfsize: DWORD;
begin
  for i := 1 to 16 do //MAX_NO_OF_SERIAL_PORTS
  begin
    if Components[i] is TCheckbox then TCheckbox(Components[i]).checked:=false;
    port := Format('COM%d', [i]);
    cfsize := sizeof(config);
    if GetDefaultCommConfig(PChar(port), config, cfsize) then
    case i of
    1: Checkbox1.checked:=true;
    2: Checkbox2.checked:=true;
    3: Checkbox3.checked:=true;
    4: Checkbox4.checked:=true;
    5: Checkbox5.checked:=true;
    6: Checkbox6.checked:=true;
    7: Checkbox7.checked:=true;
    8: Checkbox8.checked:=true;
    9: Checkbox9.checked:=true;
    10: Checkbox10.checked:=true;
    11: Checkbox11.checked:=true;
    12: Checkbox12.checked:=true;
    13: Checkbox13.checked:=true;
    14: Checkbox14.checked:=true;
    15: Checkbox15.checked:=true;
    16: Checkbox16.checked:=true;
    end;
  end;
end;

Geändert von hathor ( 9. Jul 2010 um 15:48 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz