Einzelnen Beitrag anzeigen

Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#8

Re: COM-Port ließt nach Neustart nicht

  Alt 8. Dez 2009, 19:50
Zitat von divBy0:
Hast du mal mit Portmon geschaut was mit dem Port passiert?
Nein habe ich nicht. Werde ich aufjedenfall mal machen. Jedoch kann ich an Hand von meinem Programm erkenne, das Daten kommen. Ich habe eine Control-LED programmiert, die immer dann AKTIV ist, wenn die Funktion "READPACKET" durchlaufen wird.

Daher weiß ich das aufjedenfall gelesen wird. Aber mit PortMon werde ich mal testen.

Zitat von letsfetz:
Nein ich meine ein Programm im Autostart, welches dein Prog. erst startet wenn alle Windowsdienste laufen. Ich sag dies deshalb weil ich auch schon so ähnliche "Timingprobleme" hatte, da das Programm direkt im Autostart war und im Form.Create Sachen passiert sind die im Windows während der Startphase einfach noch nicht zur Verfügung standen.
Da gebe ich Dir recht. Ich habe allerdings, meine Funktion wie folgt aufgebaut...

Delphi-Quellcode:

...Form.Create
begin
..
COMConnectTimer.Intervall := 30000;
COMConnectTimer.Enabled := true;
...
end;
...
procedure TForm1.COMConnectTimer(Sender: TObject);
begin
  ComPort1.Close;
  ComLoadSettings;
  ComPort1.Open;
  COMConnect.Enabled := false;
end;

procedure TForm1.ComLoadSettings;
var
  Pfad :String;
  AppDataDir : string;
  sMessage : String;
begin
try
  AppDataDir := GetSpecialFolder(CSIDL_COMMON_APPDATA) + strAppDataDir;
  if not DirectoryExists(AppDataDir) then
  begin
    Servicememo.Lines.Add('Der Pfad '+AppDataDir+' konnte nicht gefunden werden'+#13+
                          'ComPort wurde nicht initialisiert');
  end
  else
  begin
  ComPort1.LoadSettings(stIniFile, AppDataDir + strIniFName);
  Servicememo.Lines.Add('ComPort wurde initialisiert am: '+DateTimeToStr(Now));
  Servicememo.Lines.SaveToFile(AppDataDir + 'Service.txt');
  end;
except
  on e : Exception Do
  begin
    sMessage := e.Message;
    Servicememo.Lines.Add(sMessage);
  end;
end;
end;
Danke schon mal für Eure Tips.

Gruß Jens
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat