Einzelnen Beitrag anzeigen

APieroth

Registriert seit: 27. Sep 2006
Ort: Bremen
6 Beiträge
 
#1

Datei Handling nach Autostart

  Alt 21. Apr 2010, 10:26
Hallo da draussen,

ich habe ein merkwürdiges Problem, für das ich einfach keine Lösung finde:

Ich habe ein Programm geschrieben, das das Vorhandensein einer Datei überprüfen aoll. Ausserdem soll es diverse Informationen in eine Logdatei schreiben.

Mit folgendem Code überprüfe ich das Vorhandensein der Datei:

Delphi-Quellcode:
function AliveFileAvailable (filename: string): boolean;
var F: file;
begin
  AddLogEntry('Checking File Availability ...');
  AssignFile (F, filename);
  {$I-}
  Reset (F);
  {$I+}
  Result:= (IOResult=0);
  if Result then
    begin
      AddLogEntry('-> File Available, closing ...');
      CloseFile (F);
    end
  else
    begin
    AddLogEntry('-> File NOT Available!!! ...');
    end;
end;
Und das ist die Funktion, die das Log schreibt:

Delphi-Quellcode:
function AddLogEntry(inhalt: string): boolean;
var F: text;
    s1, s2, ausgabe: string;
    datum, zeit: TDateTime;
begin
  datum:= date();
  zeit:= time();
  s1:= DateTimeToStr(datum);
  s2:= TimeToStr(zeit);
  ausgabe:= s1+'-'+s2+': '+inhalt;
  AssignFile(F, logdateiname);
  {$I-}
  Append (F);
  {$I+}
  if IOResult<>0 then
    begin
       Rewrite(F);
    end;
  WriteLn(F, ausgabe);
  CloseFile(F);
end;
Das klappt so weit auch gut, so lange ich mein Programm manuell starte (also Doppelklick auf das Icon auf meinem Desktop).
Packe ich jedoch einen Link in den Autostartordner, damit das Programm beim Systemstart ausgeführt wird, so erfolgt kein Logging und die überprüfte Datei wird trotz Vorhandensein nie gefunden.
Mein Programm, die gesuchte Datei und das Log liegen alle in einem Verzeichnis (C:\IP-Symcon).

Woran liegt das?

Als Workaround, so dachte ich, bastle ich mir einfach einen Loader für mein Programm und lege ihn ins selbe Verzeichnis, wie mein Programm. Mein Programm wird dann durch ShellExecute ausgeführt.
Doch auch hier das Problem: starte ich den Loader per Dopperlklick vom Desktop, so geht alles gut. Liegt er im Autostartordner und wird beim Computerstart ausgeführt, so passiert nichts.

Warum?


Nebenbei bemerkt: Ich habe mit Delphi 2010 prorammiert und das Programm läuft unter WindowsXP Pro.


Kann mir jemand helfen?

Grüße,

Andreas
  Mit Zitat antworten Zitat