Einzelnen Beitrag anzeigen

1967Schorsch

Registriert seit: 28. Feb 2020
Ort: Dinslaken
8 Beiträge
 
Delphi 6 Enterprise
 
#27

AW: COM Ports im System auslesen

  Alt 9. Mär 2020, 10:19
Hallo zusammen,
ich nutze Delphi 6 seit ein paar Monaten und habe mit etwas Hilfe ein kleines Programm auf die Beine gestellt mit dem ich ein Eprom File zusammen stelle und dieses nun in einen AVR uploaden will. Dazu benutze ich den AVRootloader Ver. 6 von Hagen. Den AVRootloader rufe ich direkt aus meine Programm auf. Mit einer kleine Form suche ich die Parameter entsprechend aus und starte dann den Upload. Wenn nicht alle Parameter in den Eingabefeldern drin sind wird auch der Senden Button nicht freigegeben. Funktioniert soweit auch ganz gut.

Um einen möglichen Fehler abzufangen und aus Komfortgründen möchte ich nun die Auswahl des ComPort des USB-RS232 Wandler etwas vereinfachen.
Dazu habe ich die Prozedur eingebunden.
************************************************** ************
// COM-Ports von 1 bis 16 abklappern
portchange.Clear;
for i:=1 to 16 do
begin
TestHandle := CreateFile(PChar('\\.\COM'+IntToStr(i)),GENERIC_RE AD or GENERIC_WRITE,0,nil,OPEN_EXISTING,FILE_FLAG_OVERLA PPED,LongInt(0));
if (TestHandle > 0) then
begin
portchange.Items.Add('COM'+inttostr(i));
CloseHandle(TestHandle);
end;
end;
************************************************** ***********
Mit ein paar Anpassungen an meine ComboBox funktioniert das auch mit aufrufen der Form, die ComboBox wird gefüllt und ich kann über die Dropdown Auswahl den ComPort anwählen. Am Notebook ist nur einer angesteckt.... so kommt auch nur einer.

Nun zu meiner Frage: Wie stelle ich es an, dass auch das Abziehen des USB-RS232 Wandler vom System bemerkt wird und die ComboBox geleert wird. ?

Ich habe es schon mit einbinden eines Timer probiert, das funktionier aber nicht wirklich.

Danke für Euere Hilfe und Anregungen.

LG.
Schorsch
Georg
  Mit Zitat antworten Zitat