AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi ParamStr(1) unter Win7 falscher Pfad
Thema durchsuchen
Ansicht
Themen-Optionen

ParamStr(1) unter Win7 falscher Pfad

Ein Thema von e-gon · begonnen am 24. Aug 2011 · letzter Beitrag vom 24. Aug 2011
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#11

AW: ParamStr(1) unter Win7 falscher Pfad

  Alt 24. Aug 2011, 13:48
... oder das System liegt nicht auf C: sondern D: ...
Dann zeig mal das du ein Win7-System auf D:\ bekommst. AFAIK wird hier auf jedenfall die Laufwerke so sortiert das Win7 unter C:\ liegt.
Das System vielleicht nicht, aber die Benutzer-Ordner kann man beliebig verschieben.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.800 Beiträge
 
Delphi 12 Athens
 
#12

AW: ParamStr(1) unter Win7 falscher Pfad

  Alt 24. Aug 2011, 14:04
Vielleicht bin ich ja ein bisschen hitzegeschädigt, aber gibt nicht eigentlich Delphi-Referenz durchsuchenParamStr(0) den vollständigen Dateinamen an?

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
659 Beiträge
 
Delphi 12 Athens
 
#13

AW: ParamStr(1) unter Win7 falscher Pfad

  Alt 24. Aug 2011, 14:10
Hi Sherlock,

ich hatte es zuerst auch falsch verstanden. ParamStr(0) gibt den vollständigen Programmpfad an, aber e-gon geht es um eine von Windows automatisch als ParamStr(1) übergebene aufzurufene Datei (wenn man halt eine Datei mit "Öffnen mit" im Explorer startet).
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.800 Beiträge
 
Delphi 12 Athens
 
#14

AW: ParamStr(1) unter Win7 falscher Pfad

  Alt 24. Aug 2011, 14:18
Ah! OK, dann kann auch ich das geschilderte Verhalten nicht bestätigen. Denn bei mir(*) heisst auch alles korrekt "C:\users\..."

Sherlock


(*) mir= Win7 Prof 64bit SP1
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
e-gon

Registriert seit: 7. Jul 2003
Ort: Stuttgart
163 Beiträge
 
Delphi 6 Enterprise
 
#15

AW: ParamStr(1) unter Win7 falscher Pfad

  Alt 24. Aug 2011, 14:19
@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 werden, übergeben.
Bei mir steht in ParamStr(1) der vollständige Name der Datei, die doppelt angeklickt wurde.
  Mit Zitat antworten Zitat
e-gon

Registriert seit: 7. Jul 2003
Ort: Stuttgart
163 Beiträge
 
Delphi 6 Enterprise
 
#16

AW: ParamStr(1) unter Win7 falscher Pfad

  Alt 24. Aug 2011, 14:26
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...
Delphi-Quellcode:
    function ExtractLongFileName(const FileName: string): string;
    var FileInfo: TSHFileInfo;
    begin
      FillChar(FileInfo,SizeOf(FileInfo),#0);
      if SHGetFileInfo(PChar(FileName),0,FileInfo,Sizeof(FileInfo),SHGFI_DISPLAYNAME)<>0 then
        Result:= string(FileInfo.szDisplayName)
      else Result:= FileName;
    end;

Aber vielen Dank für Eure Hilfe!!!
  Mit Zitat antworten Zitat
e-gon

Registriert seit: 7. Jul 2003
Ort: Stuttgart
163 Beiträge
 
Delphi 6 Enterprise
 
#17

AW: ParamStr(1) unter Win7 falscher Pfad

  Alt 24. Aug 2011, 14:31
Musste Frage-Markierung noch entfernen...
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#18

AW: ParamStr(1) unter Win7 falscher Pfad

  Alt 24. Aug 2011, 14:32
Das ist korrekt. Der Parameter SHGFI_DISPLAYNAME, den du dort benutzt, holt explizit den dem Benutzer angezeigten Pfad statt dem realen Pfad.

// EDIT:
Was du wohl meintest ist die Funktion GetLongPathName:
http://msdn.microsoft.com/en-us/libr...(v=VS.85).aspx
Sebastian Jänicke
AppCentral

Geändert von jaenicke (24. Aug 2011 um 14:35 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: ParamStr(1) unter Win7 falscher Pfad

  Alt 24. Aug 2011, 14:35
Führt MSDN-Library durchsuchenGetLongPathName nicht auch zum gewünschten Ziel?
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
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#20

AW: ParamStr(1) unter Win7 falscher Pfad

  Alt 24. Aug 2011, 14:44
Ah! OK, dann kann auch ich das geschilderte Verhalten nicht bestätigen. Denn bei mir(*) heisst auch alles korrekt "C:\users\..."

Sherlock


(*) mir= Win7 Prof 64bit SP1
Die Unterschiede bei euch kommen übrigens von der Sprache, in der Windows installiert ist.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 19:07 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