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 2     12   
Bbommel

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

AW: ParamStr(1) unter Win7 falscher Pfad

  Alt 24. Aug 2011, 12:47
Hm. Vielleicht bist du mit deinem Problem doch einsamer als du dachtest. Ich habe es gerade mal getestet und ein Demo-Projekt erstellt, das mir den Pfad der Exe-Datei anzeigt und den Pfad der übergebenen Datei (um mal beide hier diskutierten Fälle zu erschlagen, auch wenn du ja eigentlich nur auf letzteres hinauswillst). In allen Fällen kam bei mir im Programm "c:\users\...." an.

System: Win7 Professional 64-Bit.
Delphi 2009.

Ich hänge das Mini-Programm mal einfach an. In der dritten Zeile sollte nach dem Start der Pfad der übergebenen Datei stehen. Kannst ja mal berichten, ob da bei dir auch "Benutzer" anstatt "Users" ankommt.
Angehängte Dateien
Dateityp: zip testpfad.zip (242,7 KB, 14x aufgerufen)

Geändert von Bbommel (24. Aug 2011 um 12:51 Uhr)
  Mit Zitat antworten Zitat
e-gon

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

AW: ParamStr(1) unter Win7 falscher Pfad

  Alt 24. Aug 2011, 13: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
 
#3

AW: ParamStr(1) unter Win7 falscher Pfad

  Alt 24. Aug 2011, 13: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
Antwort Antwort
Seite 2 von 2     12   


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:03 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