AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

C: = C:\Windows\System32

Ein Thema von Dezipaitor · begonnen am 13. Feb 2009 · letzter Beitrag vom 13. Feb 2009
Antwort Antwort
nahpets
(Gast)

n/a Beiträge
 
#1

Re: C: = C:\Windows\System32

  Alt 13. Feb 2009, 13:37
Hallo,

was passiert denn, wenn Du Dein Programm mal dahingehend änderst:
Delphi-Quellcode:
begin
  writeln('Input: "C:"');
  writeln('SysUtils.ExpandFileName : ',SysUtils.ExpandFileName('C:'));
  writeln('WideString ExpandFileName: ',ExpandFileName('C:'));
  writeln('AnsiString ExpandFileName: ',ExpandFileNameA('C:'));
  writeln('Fixed Buffer Size ExpandFileName: ',ExpandFileName3('C:'));
  ChDir('C:\Temp\');
  writeln('Input: "C:"');
  writeln('SysUtils.ExpandFileName : ',SysUtils.ExpandFileName('C:'));
  writeln('WideString ExpandFileName: ',ExpandFileName('C:'));
  writeln('AnsiString ExpandFileName: ',ExpandFileNameA('C:'));
  writeln('Fixed Buffer Size ExpandFileName: ',ExpandFileName3('C:'));
  readln;
end.
Ist das Ergebnis unverändert?

Habe das Ganze mal mit Delphi 7 kompiliert und aus der IDE gestartet. Dann steht alles auf C:\.
Dann habe ich das Programm über eine CMD, die ich aus dem WindowsCommander aufgerufen habe gestartet. Dann bekomme ich überall den Pfad, in den ich zuletzt mit dem WindowsCommander auf C: gewechselt bin. Das lässt sich durch Verzeichniswechsel im WindowsCommander und anschließendem neuen Aufruf von cmd und dann Programmstart wiederholen.
Das Verhalten ist identisch, wenn ich das Programm aus dem WindowsCommander durch Doppelklick starte, ohne zusätzliche CMD.
Starte ich das Programm über Ausführen, so erhalte ich überall C:\, da ausführen (soweit ich weiß) über den Explorer geht und der beim Start auf C:\ steht.

Das Ganze kannst Du auch über den Explorer nachvollziehen.
Starte ihn mal und wechsle auf C:.
Dann gibst Du als Adresse Dein Programm an und startest es. Du solltest überall C:\ erhalten.
Nun wechselst Du im Explorer auf C:\Programme.
Dann gibst Du als Adresse Dein Programm an und startest es. Du solltest überall C:\Programme erhalten.

Oder auf einen einfachen Nenner gebracht: Über die Angabe von C: erhälts Du das Verzeichnis, in das die Dein Programm aufrufende Shell zuletzt auf C: gewechselt ist. Dies setzt sich über mehrere voneinander aufgerufene Shells so fort. Ggfls ist dann halt auch mal Delphi die Shell, die Dein Programm aufruft.

Der Hinweis von himitsu aus Post #3 ist durchaus korrekt.
  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 12:55 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