Delphi-PRAXiS
Seite 1 von 3  1 23   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Betriebssysteme (https://www.delphipraxis.net/27-betriebssysteme/)
-   -   Win7: Virtualisierung austricksen? (https://www.delphipraxis.net/154498-win7-virtualisierung-austricksen.html)

messie 13. Sep 2010 16:36

Win7: Virtualisierung austricksen?
 
Moin,

beim Umstieg auf Win7 habe ich jetzt auch einige Dateien, die in "Eigene Dateien" , also C:\Dokumente und Einstellungen\Messie\Eigene Dateien... liegen. Die würde ich gerne weiter unter dem Pfad halten, die Virtualisierung verweigert das aber. Dateien unter C:\Benutzer werden mit den API-Abfragen "Eigene Dateien" scheinbar nicht gefunden.
Ich wollte dann lieber selbst "Dokumente und Einstellungen" anlegen, aber da bekomme ich die Meldung, dass es die schon gibt.
Es scheint also ein Verzeichnis "Dokumente und Einstellungen" zu geben. Kommt man da irgendwie dran?

Grüße, Messie

Sir Rufo 13. Sep 2010 16:50

AW: Win7: Virtualisierung austricksen?
 
Wie der Pfad in Wirklichkeit heißt kann dir doch völlig schnuppe sein.

Lass Dir vom BS den Pfad zu den Dokumenten liefern, dass passt dann für jedes Windows-BS und du brauchst keinen Spagat zu machen.

jfheins 13. Sep 2010 16:52

AW: Win7: Virtualisierung austricksen?
 
Die "Eigenen Dateien" von früher heißen jetzt (eigene) Dokumente und sind standardmäßig unter "C:\Users\xyz\Documents" zu finden.

Sir Rufo 13. Sep 2010 17:05

AW: Win7: Virtualisierung austricksen?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von jfheins (Beitrag 1049342)
Die "Eigenen Dateien" von früher heißen jetzt (eigene) Dokumente und sind standardmäßig unter "C:\Users\xyz\Documents" zu finden.

Das ist eigentlich so nicht richtig.

Richtig ist (für alle Windows-Versionen): Die Dokumente liegen in dem Special-Folder mit Namen "CSIDL_MYDOCUMENTS"

Warum so? Weil man (der User) dieses auch umbiegen kann und dann befinden sich die Dokumente an einer Stelle, die nicht mehr vorhersehbar aber (wie man ja sieht) abfragbar ist.

Entscheiden muss man immer selbst.
Soll die Anwendung quasi immer funktionieren oder nur unter optimalen Bedingungen?

Im Anhang eine Unit, womit man die SpecialFolders sehr einfach abrufen kann.

Delphi-Quellcode:
function GetDirMyDocuments : string; // liefert den Pfad zu den Dokumeten

messie 13. Sep 2010 18:46

AW: Win7: Virtualisierung austricksen?
 
Danke,

ich habe da auch schon ein paar Routinen aber nichts so Edles, was Deinem GetDirList enspricht :thumb:. Das habe ich gleich mal verwendet und habe mir die Pfade anzeigen lassen. Das Problem bestätigt sich: der alte Ordner "Eigene Dateien" (Personal) ist unter XP "C:\Dokumente und Einstellungen\Messie\Eigene Dateien" ist bei Win7 "C:\Users\Messie\Documents".
Nun liegt das Problem nicht in einer Software von mir, die relative Pfade wie Personal nutzt, sondern im Installshield, was absolute Pfade gespeichert hat. Und den Pfad "Dokumente und Einstellungen" kann wohl ich nicht anlegen, weil Win7 den selbst benutzt. Das heißt, "Dokumente und Einstellungen" (oder was auch immer nach dem internen XP-Redirect dahinter steht) müsste auch auf der Festplatte stehen. Wäre mal spannend, eine solche Platte in ein XP-System zu nehmen und sehen, was da wirklich steht.

Mein Problem bleibt erhalten: ich kann die absoluten Pfade von XP nicht unter Win7 reproduzieren und meine Installshield-Projekte wären damit Schrott :(.

Grüße, Messie

Edit: das Redirect führt auf "Documents and Settings" und scheint bei Win7 auch noch dazusein. Denn unter XP pro englisch kann ich sehr wohl einen Ordner "C:\Dokumente und Einstellungen" anlegen, nicht aber unter Win7 deutsch.

Sir Rufo 13. Sep 2010 20:01

AW: Win7: Virtualisierung austricksen?
 
Ok, dann.weiß ich jetzt warum ich auf InnoSetup umgestiegen bin.
Da sind relative Pfade kein Problem

Luckie 13. Sep 2010 20:29

AW: Win7: Virtualisierung austricksen?
 
Such dir ein Setup welches die Pfade richtig ermittelt. Und lass den Mist mit irgendwelchen Workarounds.

Bernhard Geyer 13. Sep 2010 21:35

AW: Win7: Virtualisierung austricksen?
 
Zitat:

Zitat von messie (Beitrag 1049356)
..., sondern im Installshield, was absolute Pfade gespeichert hat. ...

Da hast du entweder eine Uralt-Installshield-Version oder du verwendest Installshield falsch. IS dürfte auch schon seit Jahrzehnten die offiziellen WinAPI-Funktionen zur Bestimmung der entsprechenden Verzeichnisse verwenden.

rollstuhlfahrer 13. Sep 2010 21:45

AW: Win7: Virtualisierung austricksen?
 
selbstverständlich solltest du mit Hilfe der Kommandozeile (cmd) den Ordner "C:\Dokumente und Einstellungen\" erstellen können. Der Explorer wird dann nur damit nicht klar kommen und ihn im schlimmsten Fall 2x anzeigen.
Windows 7 hat als Grundstruktur C:\Users\ und da sollen alle benutzerbezogenen Daten rein. Damit man nicht für jede Sprache Teile von Windows neu kompilieren muss, hat MS sich was tolles einfallen lassen: Überall werden die englischen Namen verwendet und in der jeweiligen Desktop.ini steht dann drinnen, wie der Explorer diesen Ordner anzuzeigen hat. Heißt: Den Ordner, auf den du zugreifst existiert gar nicht, du kannst es aber trotzdem. Genauso verhällt es sich mit Programme zu Program Files. Das eine wird angezeigt, letzteres existiert. Ob man das jetzt gut heißen will oder nicht: Man muss sich damit abfinden.
Und wenn der Installer jetzt auf "C:\Dokumente und Einstellungen" eingefahren ist, gehört er entfernt. Was ist denn mit denen, die Windows nicht auf C: sondern auf D: haben? - Geht ganz einfach (Win XP, eigene Erfahrung). Bei der Installation unabsichtlich nen USB-Stick stecken lassen und schon ist der USB-Stick C: und Windows findet sich auf D: wieder. Folglich gibt es sogar Systeme, die ohne C: auskommen. Wie willst du diesen Nutzern klar machen, dass die Windows auf C: haben müssen, nur weil dein Installer mit was anderem nicht zurecht kommt?

In Fachzeitschriften wird unter dem Stichwort SSD dazu geraten, die persönlichen Daten auf eine Scheibenfestplatte nach D: zu schreiben (auch die Profile dahin umziehen), damit die nicht auf der SSD liegen (C:). Spätestens da wirst du deinem Installer sagen müssen, dass Eigene Dateien eben ein variabler Pfad ist.

Bernhard

messie 13. Sep 2010 21:58

AW: Win7: Virtualisierung austricksen?
 
Moin,

ob andere Setup-Umgebungen das besser können, weiß ich noch nicht. Ich werde Installshield auch irgendwann kicken.
Die absoluten Pfade betreffen aber nicht die Installation, sondern sind die absoluten Pfade der Ursprungsdateien, die relativ zu installieren sind.
Ich verwende derzeit noch Installshield 2008, was in Sachen Installation (also Ziel) durchaus brauchbar ist.
Ob Innosetup auch die Ursprungspfade der Dateien im Setup relativ behandeln kann, ist mir nicht bekannt.

Grüße, Messie


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:18 Uhr.
Seite 1 von 3  1 23   

Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf