Forum: Win32/Win64 API (native code)
Delphi
by e-gon,
24. Aug 2011
Musste Frage-Markierung noch entfernen...
Forum: Win32/Win64 API (native code)
Delphi
by e-gon,
24. Aug 2011
Ok, dank Eurer Hilfe konnte ich das Problem nun ausfindig machen. Es ist NICHT ParamStr(1) sondern eine Funktion namens ExtractLongFileName, die ich benutze um evtl. übergebene kurze Pfadnamen in lange umzuwandeln. Irgendwie scheint mein Code den Pfad von User auf Benutzer zu ändern...
function ExtractLongFileName(const FileName: string): string;
var FileInfo: TSHFileInfo;
begin...
Forum: Win32/Win64 API (native code)
Delphi
by e-gon,
24. Aug 2011
@Bbommel: Dein Mini-Programm scheint bei mir auch zu funktionieren - wenn Du statt der 3. die 2. Zeile meinst. Es steht jedenfalls zweimal C:\Users\... da.
Jetzt verstehe ich aber gar nichts mehr! Ich nutze ebenfalls Delphi 2009 auf Win7 (64 Bit)...
@Sherlock: ParamStr(0) gibt den vollständigen Programmname zurück und ab (1) bis (x) werden Parameter, die mit dem Programm aufgerufen...
Forum: Win32/Win64 API (native code)
Delphi
by e-gon,
24. Aug 2011
GetModuleFilename ist gut, wenn es um das ausführende Programm geht. Ich bräuchte das aber für die zu öffnende Datei.
Um es mal deutlich zu machen: Ich habe bestimmte Dateitypen mit meinem Programm verbunden. Klickt man nun doppelt auf eine Datei diesen Typs wird automatisch mein Programm gestartet und die zu öffnende Datei per ParamStr(1) übergeben.
Den Pfad meines Programms kann ich...
Forum: Win32/Win64 API (native code)
Delphi
by e-gon,
24. Aug 2011
Da magst Du recht haben (ich kenne Win7 noch nicht so gut).
Worum es mir aber eigentlich geht: Da ich nicht weiß welche Pfade alles von Win7 verbogen werden ist es mir nicht möglich sämtliche Verzeichnisse auf das richtige Verzeichnis abzubilden.
Gibt es vielleicht eine Funktion wie PathNameToRealName(ExtractFileDir(ParamStr(1))); ?
Forum: Win32/Win64 API (native code)
Delphi
by e-gon,
24. Aug 2011
Danke für die schnellen Antworten!
Aber wie soll mir CSIDL_FLAG_CREATE dabei helfen? ParamStr(1) liefert "C:\Benutzer\USERNAME\Desktop". Woher soll ich dann wissen, dass ich CSIDL_FLAG_CREATE abfragen muss? Auf einem anderen PC ist z. B. der Username ein anderer oder das System liegt nicht auf C: sondern D: ...
Forum: Win32/Win64 API (native code)
Delphi
by e-gon,
24. Aug 2011
Hallo zusammen,
um Dateien per Doppelklick mit meinem eigenen Programm öffnen zu können benutze ich
ExtractFileDir(ParamStr(1))
Das hat bisher auch immer gut funktioniert. Nach meinem Umstieg auf Windows 7 habe ich allerdings ein Problem, wenn die zu öffnende Datei auf dem Desktop liegt.
ExtractFileDir(ParamStr(1)) liefert dann "C:\Benutzer\USERNAME\Desktop" zurück. Aber diesen Pfad gibt...