AGB  ·  Datenschutz  ·  Impressum  







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

Datei Handling nach Autostart

Ein Thema von APieroth · begonnen am 21. Apr 2010 · letzter Beitrag vom 21. Apr 2010
Antwort Antwort
Seite 1 von 2  1 2      
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
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Datei Handling nach Autostart

  Alt 21. Apr 2010, 10:31
Und wie sehen die Pfadangaben aus?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
APieroth

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

Re: Datei Handling nach Autostart

  Alt 21. Apr 2010, 10:38
Hm, ich glaube, ich bin dem Fehler auf der Spur.
Nach Autostart (mein Programm liegt übrigens nicht als Link im Autostartordner, sondern ich habe es in der Registry unter Aktueller Benutzer\Run eingetragen), schreibt mein Programm doch ein Log. Jedoch nicht in das Verzeichnis, in dem es liegt, sondern in mein Benutzerverzeichnis (C:\Dokumente und Einstellungen\Andreas). Folglich wird es auch dort nach der zu überwachenden Datei suchen und sie entsprechend nicht finden. Blöd!

Wie kann ich unter Delphi feststellen, in welchem Verzeichnis ein Programm liegt?


Grüße,

Andreas


@Luckie
Ich habe keine Pfadangaben gemacht. Das ist wohl das Problem
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Datei Handling nach Autostart

  Alt 21. Apr 2010, 10:43
Zitat von APieroth:
Ich habe keine Pfadangaben gemacht. Das ist wohl das Problem
Ich glaube, seit Bestehen dieses Forum, wird gepredigt, dass man keine relativen Pfade verwendet, weil dann nämlich genau das passiert.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#5

Re: Datei Handling nach Autostart

  Alt 21. Apr 2010, 10:48
Und nebenbei prüft der Code nicht, ob die Datei vorhanden ist, sondern ob sie zum Lesen geöffnet werden kann, das ist ein Unterschied. Was spricht denn gegen FileExists?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
APieroth

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

Re: Datei Handling nach Autostart

  Alt 21. Apr 2010, 10:53
@Luckie
Tja, ist wohl richtig.
Da das Programm jedoch universell einsetzbar sein soll, brauche ich eine Möglichkeit, den Pfad, in dem es liegt herauszufinden. Wie?

@DeddyH
Ach herrjeh. Auf die einfachsten Dinge kommt man nicht
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Datei Handling nach Autostart

  Alt 21. Apr 2010, 10:58
Zitat von APieroth:
Da das Programm jedoch universell einsetzbar sein soll, brauche ich eine Möglichkeit, den Pfad, in dem es liegt herauszufinden. Wie?
Auch diese Frage wurde in diesem Zusammenhang schon zur Genüge beantwortet: ParamStr(0).

Allerdings ist es keine gute Idee, Dateien im Programmverzeichnis abzuspeichern, da eventuell die nötigen Rechte fehlen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#8

Re: Datei Handling nach Autostart

  Alt 21. Apr 2010, 11:04
ExtractFileDir(paramstr(0))

@Luckie
Da er sich augenscheinlich abseits der üblichen Windows-Pfade bewegt, darf er es wohl doch.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Datei Handling nach Autostart

  Alt 21. Apr 2010, 11:08
Zitat von p80286:
Da er sich augenscheinlich abseits der üblichen Windows-Pfade bewegt, darf er es wohl doch.
Bis zu dem Zeitpunkt, wo ein Benutzer auf die Idee kommt das Programm, dahin zu installieren, wo es hingehört. Und dann geht hier wieder die große Fehlersuche los. Warum also nicht gleich richtig machen?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#10

Re: Datei Handling nach Autostart

  Alt 21. Apr 2010, 11:23
Zitat von Luckie:
Zitat von p80286:
Da er sich augenscheinlich abseits der üblichen Windows-Pfade bewegt, darf er es wohl doch.
Bis zu dem Zeitpunkt, wo ein Benutzer auf die Idee kommt das Programm, dahin zu installieren, wo es hingehört. Und dann geht hier wieder die große Fehlersuche los. Warum also nicht gleich richtig machen?
Entschuldige, ob dies so ganz "richtig" ist liegt wohl eher im Auge des Betrachters. Aber davon abgesehen "richtig" wäre, bei der Programminitialisierung, die benötigten Rechte zu überprüfen, und den Benutzer ggf. auf den falschen Installationsort hinzuweisen, und vielleicht zu dokumentieren wohin das Log geschrieben wurde.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 04:50 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