AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Pfad der eigenen Anwendung - ohne Application. Param...
Thema durchsuchen
Ansicht
Themen-Optionen

Pfad der eigenen Anwendung - ohne Application. Param...

Ein Thema von tn249 · begonnen am 1. Aug 2005 · letzter Beitrag vom 14. Feb 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von tn249
tn249

Registriert seit: 18. Jan 2004
Ort: München
164 Beiträge
 
Delphi 2005 Personal
 
#1

Pfad der eigenen Anwendung - ohne Application. Param...

  Alt 1. Aug 2005, 20:01
Hallo,

Hab keine Ahnung ob das was ich versuche überhaupt funktioniert, aber fragen kann man ja mal.

Ich habe eine Klasse, also den Protoptyp eines Objekts.

Im constructor der Klasse möchte ich den Pfad der Anwendung in eine Variable schreiben, jedoch ohne eine Variable aus der aufrufenden Funktion zu übergeben.

Geht das evtl. über irgendwelche API-Aufrufe?

Welche anderen Ansätze gibt es?

Gruß
tn249
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
SMO

Registriert seit: 20. Jul 2005
178 Beiträge
 
Delphi XE6 Professional
 
#2

Re: Pfad der eigenen Anwendung - ohne Application. Param...

  Alt 1. Aug 2005, 20:06
Ich nehme an, du meinst ohne "Application.ExeName". Du kannst stattdessen "ParamStr(0)" benutzen, ist dasselbe.
  Mit Zitat antworten Zitat
Benutzerbild von tn249
tn249

Registriert seit: 18. Jan 2004
Ort: München
164 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Pfad der eigenen Anwendung - ohne Application. Param...

  Alt 1. Aug 2005, 20:10
Ich meinte .Paramstr(0), .Exename basiert auf .Paramstr(0).

In dem von mir oben geschildertem Fall hab die gesamte "Application" nicht zur Verfügung.

Gruß
tn249
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Pfad der eigenen Anwendung - ohne Application. Param...

  Alt 1. Aug 2005, 20:28
Das sollte funktionieren:

Delphi-Quellcode:
uses
  Windows;

function ExeName: string;
begin
  SetLength(Result, 261);
  SetLength(Result, GetModuleFileName(0, @Result[1], Length(Result)));
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
SMO

Registriert seit: 20. Jul 2005
178 Beiträge
 
Delphi XE6 Professional
 
#5

Re: Pfad der eigenen Anwendung - ohne Application. Param...

  Alt 1. Aug 2005, 20:30
Ja, genau, Application.ExeName basiert auf ParamStr(0). Die ParamStr-Funktion kommt aus der Unit "System" und ist daher überall verfügbar, auch ohne Application-Objekt.

Also kannst du ParamStr(0) benutzen. Oder gleich die WinAPI-Funktion GetModuleFileName, die ruft ParamStr(0) nämlich intern auf.
  Mit Zitat antworten Zitat
Benutzerbild von tn249
tn249

Registriert seit: 18. Jan 2004
Ort: München
164 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Pfad der eigenen Anwendung - ohne Application. Param...

  Alt 1. Aug 2005, 20:40
Gut vielen Dank euch beiden. Es funktioniert soweit.

Der Vollständigkeit halber erwähne ich jedoch noch, dass GetModuleFileName nicht nur den Pfad liefert, sondern auch noch den Dateiname selbst. (Zumindest in meinem Test)

aber das ist ja mit EctractFilePath dann kein großes Ding mehr.

Gruß
tn249
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Pfad der eigenen Anwendung - ohne Application. Param...

  Alt 1. Aug 2005, 20:59
Moin tn249,

Zitat von tn249:
Der Vollständigkeit halber erwähne ich jedoch noch, dass GetModuleFileName nicht nur den Pfad liefert, sondern auch noch den Dateiname selbst.
was auch ParamStr(0) bzw. Application.ExeName auch tun.
Es ist eben der Pfad und nicht das Verzeichnis der Anwendung.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von tn249
tn249

Registriert seit: 18. Jan 2004
Ort: München
164 Beiträge
 
Delphi 2005 Personal
 
#8

Re: Pfad der eigenen Anwendung - ohne Application. Param...

  Alt 1. Aug 2005, 21:07
Hm. Ich glaub die 10 Stunden pralle Sonne und die giftige verstrichene Farbe ham doch etwas mehr als nur dröhnendes Hämmern in meinem Kopf hinterlassen
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#9

Re: Pfad der eigenen Anwendung - ohne Application. Param...

  Alt 2. Aug 2005, 09:00
@marabu: Statt 261 bitte "MAX_PATH+1" verwenden. Man sollte sich immer vor Augen halten, daß es auf der C-Seite #defines sind. Und die können sich potentiell auch ändern

Und seien wir mal ehrlich, da es Literale sind, macht es doch auch zur Laufzeit keinen Unterschied. In der Wartbarkeit aber potentiell schon.

Beste Grüße an den marabu,
  Mit Zitat antworten Zitat
Benutzerbild von thule
thule

Registriert seit: 4. Okt 2007
13 Beiträge
 
#10

Re: Pfad der eigenen Anwendung - ohne Application. Param...

  Alt 26. Jan 2008, 19:19
Hallo. Das ist mein erster Post und dann auch gleich schon eine frage.
Ich lerne delphi privat aus interesse und hier ist schon lange eine DER quellen für gute erklärungen.

Mich Interessiert:

wenn meine anwendung (console) als parameter [ParamStr(1)] einer anderen gestartet wird bekomme ich mit ParamStr(0) nur Die Hostanwendung. Wie komme ich an den Exe-Name meiner eigenen anwendungen IMMER mit sicherheit? Oder mache ich etwas falsch?

Gruß, Thule
Open is human
  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:31 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