Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi autostart aber welcher pfad??? (https://www.delphipraxis.net/86200-autostart-aber-welcher-pfad.html)

passsy 10. Feb 2007 20:05


autostart aber welcher pfad???
 
http://www.dsdt.info/tipps/?id=238&search=autostart

genau so hab ichs gemacht und geht auch 1a :thumb: :thumb: :thumb:


nur ma so ne frage: also wenn ich euch das programm jetzt zum download frei geb und ihr das euch aufn desktop zieht (machen nur kaoten aber man weiß ja nie ;) ) ihr das programm startet schreibt es sich in den autostart.... soweit alles klar

ABER wenn ihr es nun in nen ordner verschiebt (nich aufm desktop oder da wo es beim ersten autostart war) dann dürfte das programm ja nich starten.

daraus folgere ich programmpfad falsch --> programm startet nich

bei dieser autostartlösung muss ich aber einen pfad eingeben ;)

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
 CreateAutorunEntry(Application.Title,ParamStr(0), akUserRunOnce); // paramStr(0) ist der Pfad
end;
ich kann aber keinen festen angeben weil ihr das ja überall hinspeichert warscheinlich aber nich da wo ich will^^

problem geblickt?

lösungen?

Matze 10. Feb 2007 20:12

Re: autostart aber welcher pfad???
 
Im Normalfall ändert sich der Pfad doch nicht, zumindest ist das nicht vorgesehen und daher ist so eine Möglichkeit auch nicht nötig. Woher soll Windows denn wissen, wo sich dein Programm befindet?

Oder ich habe dein Problem nicht verstanden.

MrKnogge 10. Feb 2007 20:12

Re: autostart aber welcher pfad???
 
Mit:
Delphi-Quellcode:
ExtractFilePath(ParamStr(0))
bekommst du den aktuellen Pfad deiner Anwendung.

Gruß

DP-Maintenance 10. Feb 2007 20:13

DP-Maintenance
 
Dieses Thema wurde von "Phoenix" von "VCL / WinForms / Controls" nach "Sonstige Fragen zu Delphi" verschoben.
Geht nicht um Controls.

passsy 10. Feb 2007 20:33

Re: autostart aber welcher pfad???
 
Delphi-Quellcode:
var
pfad:string;

begin
 pfad:=ExtractFilePath(ParamStr(0));
 showmessage(pfad);  //hier!!!!!!!
end;

also wenn ich den pfad ausgeben will kommt zugriffsverletzung^^

Luckie 10. Feb 2007 20:34

Re: autostart aber welcher pfad???
 
Aber nicht wegen des oben geposteten Codes, der ist in Ordnung. Der Fehler muss wo anders liegen.

Martin K 10. Feb 2007 20:36

Re: autostart aber welcher pfad???
 
Hi,
ich glaub jeder hier im Forum wäre froh wenn er sich ein Programm runterlädt, und es sich nicht gleich in den Autostart schreibt.
Mach doch wenigestens eine Abfrage rein, ob man es im Autostart haben will oder nicht.
Und in der Abfrage steht dann auch gleich ein Hinweis, mit welchem Programm-Pfad ein Eintrag im Autostart erstellt wird.

Gruß, Martin

passsy 10. Feb 2007 20:40

Re: autostart aber welcher pfad???
 
Zitat:

Zitat von Martin K
Hi,
ich glaub jeder hier im Forum wäre froh wenn er sich ein Programm runterlädt, und es sich nicht gleich in den Autostart schreibt.
Mach doch wenigestens eine Abfrage rein, ob man es im Autostart haben will oder nicht.
Und in der Abfrage steht dann auch gleich ein Hinweis, mit welchem Programm-Pfad ein Eintrag im Autostart erstellt wird.

Gruß, Martin

hab ich vor aber erst ma muss ich ja an der pfad kommen.

wenn ich das showmessage raus mach passiert das nich aber dann schreibt er es auch nicht in den autostart



Delphi-Quellcode:
begin
 pfad:=ExtractFilePath(ParamStr(0));
 begin
  CreateAutorunEntry('mein prog', pfad, akUserRun);
 end;
end;

passsy 10. Feb 2007 20:43

Re: autostart aber welcher pfad???
 
also in nem neuen project gehts... :(

dann geh ich ma ne runde auf fehlersuche

Martin K 10. Feb 2007 20:44

Re: autostart aber welcher pfad???
 
Ich denke mal mit Pfad ist der komplette Pfad inkl. Dateiname gemeint, oder?
Also so, wie du es im ersten Beitrag stehen hast.

ExtractFilePath() extrahiert nur den Pfad, während ParamStr(0) den Pfad inkl. Dateinamen zurück gibt.

Gruß, Martin

Matze 10. Feb 2007 20:46

Re: autostart aber welcher pfad???
 
Ich bin wohl der einzige, der dein Problem nicht versteht. Ich habe es so verstanden:

Man führt deine Anwendung aus, diese schreibt sich in den Autostart und wird dann auch jedesmal korrekt gestartet. Wenn man nun deine Anwendung in ein andere Verzeichnis verschiebt, dann möchtest du, dass diese weiterhin mit Windows gestartet wird, auch ohne diese erneut manuell aufzurufen. Oder meinst du was anderes?

Denn das geht nicht ohne weiteres und wäre, wie gesagt, auch nicht nötig.

Oder meinst du was anderes? :duck:

passsy 10. Feb 2007 20:47

Re: autostart aber welcher pfad???
 
Zitat:

Zitat von Martin K
Ich denke mal mit Pfad ist der komplette Pfad inkl. Dateiname gemeint, oder?
Also so, wie du es im ersten Beitrag stehen hast.

ExtractFilePath() extrahiert nur den Pfad, während ParamStr(0) den Pfad inkl. Dateinamen zurück gibt.

Gruß, Martin


richtig :D ich hab NUR den pfad und nich den dateinamen angegeben jetzt schreibt er das auch in den autostart aber bei shwomessage() bringt er immernoch fehler :gruebel:

egal problem gelöst thread als geschlossen erklärt

TOmega 10. Feb 2007 20:47

Re: autostart aber welcher pfad???
 
Hallo,
mal ein ganz anderer Vorschlag.
Wenn du dein Programm weitergeben willst, dann mach das doch mit einem richtigen Setup über InstallShield, Inno-Setup oder ähnlichen. Dann ist auch gewährleistet, das die Werte in der Registry nach der Deinstallation wieder sauber gelöscht werden.
Sollte jemand auf die Idee kommen, das Programm anschliessend in einen anderen Ordner zu verschieben ist er selbst schuld, wenn es nicht mehr läuft. Jeder Windows-Nutzer sollte mittlerweile wissen, dass das nicht funktioniert.

Martin K 10. Feb 2007 20:55

Re: autostart aber welcher pfad???
 
Zitat:

Zitat von passsy
aber bei shwomessage() bringt er immernoch fehler :gruebel:

ShowMessage() ist in der Unit Dialogs drin.
Sicher, dass diese Unit auch eingebunden ist?
Evtl. verwendest Du ja ein "anderes" ShowMessage, schreib mal Dialogs.ShowMessage(pfad); um sicherzugehen.

@Matze:
Ja, das Thema hat sich im Verlauf dieses Threads wohl mal wieder etwas geändert...
Er wollte ja eigentlich nur wissen, wie er dieses Problem lösen kann, und nicht dass Windows den Pfad zu seinem Programm automatisch anpasst, wenn man es verschiebt.
Dazu ja mein Vorschlag mit der Abfrage, ob man das Programm mit diesem Pfad auch so im Autostart stehen haben will :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:42 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz