AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Anwendungsstart über Link - ParamStr(0) nicht pfad zur exe
Thema durchsuchen
Ansicht
Themen-Optionen

Anwendungsstart über Link - ParamStr(0) nicht pfad zur exe

Ein Thema von enebk · begonnen am 30. Mär 2009 · letzter Beitrag vom 30. Mär 2009
Antwort Antwort
Seite 1 von 2  1 2      
enebk

Registriert seit: 30. Mär 2009
2 Beiträge
 
#1

Anwendungsstart über Link - ParamStr(0) nicht pfad zur exe

  Alt 30. Mär 2009, 11:46
Hallo Delphi-Gemeinde!

In meinem Programm wird beim Starten mit
ExtractFilePath(ParamStr(0));
der Pfad zur exe bestimmt. Wenn man es aber über einen Link (Desktop/ Startmenü) startet gibt ParamStr(0) den Pfad zur .lnk-Datei (C:/.../Dektop/ z.B.) zurück.

Alternativen wie GetCurrentDir oder Application.ExeName funktionieren auch nicht.

Was für Ansätze gibt es noch?

Viele Grüße
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Anwendungsstart über Link - ParamStr(0) nicht pfad zur e

  Alt 30. Mär 2009, 11:49
Hallo,

Delphi-Quellcode:
var
  szLibFileName : array[0..MAXPATH] of Char;
begin
        GetModuleFileName(HInstance, szLibFileName, SizeOf(szLibFileName)-1);



Heiko
Heiko
  Mit Zitat antworten Zitat
worker
(Gast)

n/a Beiträge
 
#3

Re: Anwendungsstart über Link - ParamStr(0) nicht pfad zur e

  Alt 30. Mär 2009, 11:52
Hmm, bei mir gibt ExtractFilePath(ParamStr(0)) im OnCreate den korrekten Pfad zur Exe zurück; egal ob direkt getartet, oder per Verknüpfung die irgendwo liegt.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: Anwendungsstart über Link - ParamStr(0) nicht pfad zur e

  Alt 30. Mär 2009, 12:01
Zitat von enebk:
der Pfad zur exe bestimmt. Wenn man es aber über einen Link (Desktop/ Startmenü) startet gibt ParamStr(0) den Pfad zur .lnk-Datei (C:/.../Dektop/ z.B.) zurück.
Du hast definitiv die EXE kopiert anstatt einen Link erzeugt.
  Mit Zitat antworten Zitat
enebk

Registriert seit: 30. Mär 2009
2 Beiträge
 
#5

Re: Anwendungsstart über Link - ParamStr(0) nicht pfad zur e

  Alt 30. Mär 2009, 12:11
Zitat von Muetze1:
Du hast definitiv die EXE kopiert anstatt einen Link erzeugt.
Ne, ist schon ein richtiger Link.

Habe die Lösung jetzt gefunden:
Die Links wurden von Inno Setup erstellt. Der Pfad zu Anwendung wurde in der .lnk-Datei richtig eingegeben, es fehlte aber die Angabe "Ausführen in..." !!!

Ohne diese Angabe wird die Anwendung in dem Ordner ausgeführt, in welchem die .lnk-Datei liegt!


Problem gelöst (... zumindest muss im Inno-Setup jetzt noch das Script verändert werden)!
  Mit Zitat antworten Zitat
DevilsCamp
(Gast)

n/a Beiträge
 
#6

Re: Anwendungsstart über Link - ParamStr(0) nicht pfad zur e

  Alt 30. Mär 2009, 12:23
Zitat von enebk:
Habe die Lösung jetzt gefunden:
Die Links wurden von Inno Setup erstellt. Der Pfad zu Anwendung wurde in der .lnk-Datei richtig eingegeben, es fehlte aber die Angabe "Ausführen in..." !!!

Ohne diese Angabe wird die Anwendung in dem Ordner ausgeführt, in welchem die .lnk-Datei liegt!
Auch wenn "Ausführen in..." nicht gesetzt ist:
Code:
ExtractFilePath(ParamStr(0))
sollte dennoch den Pfad zur EXE-Datei ausgeben. Welchen Wert hat ParamStr(0) bei dir?
  Mit Zitat antworten Zitat
Relicted

Registriert seit: 24. Jan 2006
Ort: Iserlohn
646 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Anwendungsstart über Link - ParamStr(0) nicht pfad zur e

  Alt 30. Mär 2009, 12:30
Ich weiß nicht mehr in welcher Konstellation es war aber ich habe den Effekt auch schon gehabt.
Paramstr(0) gab bei mir auch etwas anderes zurück als erwartet. Ich habe mir daher angewöhnt mit Application.ExeName zu arbeiten - da hatte ich bisher keine Probleme mit dem Aufruf.

Gruß
Reli
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.004 Beiträge
 
Delphi 2009 Professional
 
#8

Re: Anwendungsstart über Link - ParamStr(0) nicht pfad zur e

  Alt 30. Mär 2009, 12:41
Zitat von Relicted:
Ich weiß nicht mehr in welcher Konstellation es war aber ich habe den Effekt auch schon gehabt.
Paramstr(0) gab bei mir auch etwas anderes zurück als erwartet. Ich habe mir daher angewöhnt mit Application.ExeName zu arbeiten - da hatte ich bisher keine Probleme mit dem Aufruf.

Gruß
Reli
Application.Exename versagt allerdings bei Diensten und DataSnap-Anwendungen. Dass ParamStr(0) auch nicht zuverlässig ist, wusste ich auch bis heute nicht. GetModuleFileName wurde in der JCL bisher anscheinend noch nicht schick a la Delphi gekapselt...

Cheers
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#9

Re: Anwendungsstart über Link - ParamStr(0) nicht pfad zur e

  Alt 30. Mär 2009, 12:42
Zitat von Relicted:
Paramstr(0) gab bei mir auch etwas anderes zurück als erwartet. Ich habe mir daher angewöhnt mit Application.ExeName zu arbeiten - da hatte ich bisher keine Probleme mit dem Aufruf.
Das ist, nun, sagen wir mal - witzig. Denn Application.ExeName benutzt doch intern nix anderes als ParamStr(0)...
  Mit Zitat antworten Zitat
Relicted

Registriert seit: 24. Jan 2006
Ort: Iserlohn
646 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: Anwendungsstart über Link - ParamStr(0) nicht pfad zur e

  Alt 30. Mär 2009, 12:45
Zitat von Meflin:
Zitat von Relicted:
Paramstr(0) gab bei mir auch etwas anderes zurück als erwartet. Ich habe mir daher angewöhnt mit Application.ExeName zu arbeiten - da hatte ich bisher keine Probleme mit dem Aufruf.
Das ist, nun, sagen wir mal - witzig. Denn Application.ExeName benutzt doch intern nix anderes als ParamStr(0)...
Das ist mir wiederrum neu - aber gut habe mich auch noch ned weiter damit befasst. In diesem einen besonderen Fall funktionierte es nur so. Warum auch immer... vielleicht habe ich auch unbemerkt irgendwas anderes geändert was das beeinflusst *shrug*
  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 23:21 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