AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi GetTempPathA liefert falsches Verzeichnis?
Thema durchsuchen
Ansicht
Themen-Optionen

GetTempPathA liefert falsches Verzeichnis?

Ein Thema von Angel4585 · begonnen am 9. Aug 2013 · letzter Beitrag vom 9. Aug 2013
Antwort Antwort
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#1

GetTempPathA liefert falsches Verzeichnis?

  Alt 9. Aug 2013, 09:27
Guten Morgen!

Ich habe da Problem, dass GetTempPathA ein Verzeichnis liefert, welches nicht existiert.

Der eigentliche Pfad lautet "C:\Users\M.Weber\AppData\Local\Temp\"
GetTempPathA liefert "C:\Users\M1B24~1.WEB\AppData\Local\Temp\"

Mir ist bekannt, dass der Username schonmal irgendwie anders dargestellt werden kann, kein Problem.
Normalerweise ist es mir aber dann möglich diesen Pfad im Explorer einzugeben und dorthin zu navigieren.
Das geht jetzt aber nicht.

Diese Methode nutze ich, um mir den Pfad zu holen:
Delphi-Quellcode:
ltemppath:=Allocmem(MAX_PATH+1);
GetTempPathA(MAX_PATH,ltemppath);
Ich arbeite mit Windows 7, 64-Bit.
Das Programm wird auf ein Netzlaufwerk, bzw. UNC-Laufwerk auf einem anderen Rechner abgelegt und auf meinem Rechner ausgeführt.

Hat jemand eine Idee was da schief läuft?

Edit:
Die Umgebungsvariablen TMP und TEMP haben den Wert: "%USERPROFILE%\AppData\Local\Temp"
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: GetTempPathA liefert falsches Verzeichnis?

  Alt 9. Aug 2013, 09:41
Die A-Version wird halt die 8.3-Notation des Pfades zurück liefern. Also völlig OK.

Wieso überhaupt die A-Version. Du hast do D2010 und solltest sinnvollerweise nur mit der W-Version der API arbeiten.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#3

AW: GetTempPathA liefert falsches Verzeichnis?

  Alt 9. Aug 2013, 10:07
Das Problem ist ja nicht, dass der Benutzerordner anders heisst, sondern dass es den garnicht gibt.
Normalerweise wird der Benutzerordner umbenannt in einen Namen der ähnlich lautet wie der oben und wenn ich diesen im Explorer eingebe komme ich auch zum Benutzerordner.

Der Name der hier aber jetzt erstellt wird ist schlichtweg falsch.


Ich habe ein älteres Projekt jetzt auf D2010 umgestellt und da war das GetTempPathA halt noch drin, ich könnte jetzt natürlich alle A zu W umstellen, aber das ist halt mit sehr viel Aufwand verbunden

Edit: Habe es an der Stelle jetzt mal auf GetTempPathW geändert, das liefert genau den selben Pfad..
Martin Weber
Ich bin ein Rüsselmops

Geändert von Angel4585 ( 9. Aug 2013 um 10:09 Uhr)
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#4

AW: GetTempPathA liefert falsches Verzeichnis?

  Alt 9. Aug 2013, 10:07
Könnte es sein, dass die UAC-Virtualisierung zugeschlagen hat?
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#5

AW: GetTempPathA liefert falsches Verzeichnis?

  Alt 9. Aug 2013, 10:17
Ich hasse dieses Wort, weil ich immernoch nicht ganz verstehe, was die UAC-Virtualisierung macht bzw wofür das gut sein soll

Also was macht die an dieser Stelle?

UAC-Virtualisierung ist laut Taskmanager für den Prozess aktiv

Edit:
Interessant ist vielleicht auch, dass in der IDE unter "Tools->Optionen->Umgebungsoptionen->Umgebungsvariablen" der korrekte Pfad angegeben wird:
"C:\Users\M0B95~1.WEB\AppData\Local\Temp"

Das Problem tritt auch nur auf, wenn ich das Programm aus der IDE ausführe.
Martin Weber
Ich bin ein Rüsselmops

Geändert von Angel4585 ( 9. Aug 2013 um 11:11 Uhr)
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#6

AW: GetTempPathA liefert falsches Verzeichnis?

  Alt 9. Aug 2013, 11:21
Gelöst

In den Projektoptionen unter Debugger->Umgebungsblock waren einige überschriebene Umgebungsvariablen
So eben auch die TMP und TEMP, die auf diesen fixen/falschen Pfad eingestellt waren.
Hab die überschriebenen rausgelöscht und schon geht es..

Und das obwohl ich nie zuvor in meinem Leben etwas an dieser Stelle gemacht habe
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#7

AW: GetTempPathA liefert falsches Verzeichnis?

  Alt 9. Aug 2013, 14:37
Und das obwohl ich nie zuvor in meinem Leben etwas an dieser Stelle gemacht habe
Genau... Nie im Leben.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#8

AW: GetTempPathA liefert falsches Verzeichnis?

  Alt 9. Aug 2013, 14:50
Echt nicht, ich wusste nichtmal, dass man die Umgebungsvariablen für einen Debugging-Vorgang überschreiben kann... All die Jahre
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Antwort Antwort


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