Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Werkzeuge (https://www.delphipraxis.net/63-sonstige-werkzeuge/)
-   -   Advanced Installer erstellt gleichnamige Verzeichnisse und Registryschlüssel (https://www.delphipraxis.net/188539-advanced-installer-erstellt-gleichnamige-verzeichnisse-und-registryschluessel.html)

jaenicke 14. Mär 2016 12:18

Advanced Installer erstellt gleichnamige Verzeichnisse und Registryschlüssel
 
Hallo,

wir haben ein Problem bei der Nutzung des Advanced Installers. Das zu lösen ist die eine Sache, ich frage mich aber vor allem wie das technisch passieren kann...

Das Zielverzeichnis des Setups existierte schon, aber statt dieses zu benutzen wurde ein exakt gleichnamiges Verzeichnis parallel erstellt. Ich dachte erst ich sehe nicht richtig, aber es ist so. Dann habe ich alles wieder deinstalliert, beide Verzeichnisse gelöscht und diesmal das Setup zuerst installiert.
Dann habe ich auf neuer Ordner im Windows Explorer geklickt, habe den gleichen Namen angegeben und es wurde wieder ein separates Verzeichnis erstellt...

Das gleiche passiert auch in der Registry.

Wie kann das denn sein? Ich dachte genau das würde Windows intern verhindern? :shock:

Danke und schönen Gruß,
Sebastian

bra 14. Mär 2016 12:25

AW: Advanced Installer erstellt gleichnamige Verzeichnisse und Registryschlüssel
 
Man kann nicht zwei identische Verzeichnisse anlegen, zumindest im gleichen Ordner. Vermutlich ist da irgendein Sonderzeichen oder ein zusätzliches Leerzeichen enthalten, wodurch sie gleich aussehen. Oder auch l = I (L = i)?

Dalai 14. Mär 2016 13:29

AW: Advanced Installer erstellt gleichnamige Verzeichnisse und Registryschlüssel
 
Auch Lokalisierung kann sowas auslösen. Wenn es im einen Verzeichnis eine desktop.ini gibt (ggf. versteckt) und das Verzeichnis selbst entweder das Attribut System und/oder ReadOnly hat, wird die desktop.ini ausgewertet. Beispiele von Windows selbst sind die Verzeichnisse Users, Program Files und Program Files (x86) - alle genannten werden im Explorer lokalisiert angezeigt, bei einem deutschen System also Benutzer, Programme und Programme (x86).

Ich kann also nur den Tip geben, einen ordentlichen Dateimanager zu benutzen, um zu sehen, was wirklich auf der Platte vorhanden ist. Mit Sicherheit kann ich sagen, dass es nicht mehr als ein Verzeichnis mit demselben Namen ist.

MfG Dalai

himitsu 14. Mär 2016 13:58

AW: Advanced Installer erstellt gleichnamige Verzeichnisse und Registryschlüssel
 
Jupp, aus diesem Grund spricht das Dateisystem vom Windows seit ein paar Jahren nur noch englisch, egal wo auf der Welt,
weil die Setupprogrammierer einfach zu doof waren die "richtigen" Verzeichnisse auszulesen und sie stattdessen "hart" hinterlegt hatten.
Genauso, wie die System-Partition nun immer C ist, selbst wenn es nicht die erste (sichtbare) Partition auf der Platte ist, oder auch nicht die erste Platte im System.

C:\Programme (im deutschen Windows) gibt es nicht mehr
Das Verzeichnis selber heißt C:\Program Files, welches lokalisiert wird. (wird im Explorer und den Open-Dialogen übersetzt angezeigt)
Und zur Sicherheit legt das Windows-Setup auch noch eine "unsichtbaren" C:\Programme-Link an, der ins Nichts zeigt, damit es knallt, sollte doch mal ein Programm in C:\Programme schreiben wollen.

Die unsichtbaren SymLinks sollte man nur sehen können, wenn der Explorer "Geschützte Systemdateien" anzeigt.

franktron 14. Mär 2016 14:17

AW: Advanced Installer erstellt gleichnamige Verzeichnisse und Registryschlüssel
 
Also Theoretisch ist das möglich, und zwar wenn die Großkleinschreibung unterschiedlich ist.

Mir ist aber keine Programm unter Windows bekannt was das macht.

Das es geht kann man mit Linux ausprobieren das geht das auch auf NTFS

Dalai 14. Mär 2016 14:22

AW: Advanced Installer erstellt gleichnamige Verzeichnisse und Registryschlüssel
 
Zitat:

Zitat von franktron (Beitrag 1332915)
Also Theoretisch ist das möglich, und zwar wenn die Großkleinschreibung unterschiedlich ist.

Sehr unwahrscheinlich. NTFS kann zwar die Schreibweise unterscheiden (bzw. tut es sogar, wenn eine Systemeinstellung gesetzt ist), die Shell - hier Explorer - kann es aber nicht. Vermutlich würde der Explorer bei zwei gleichnamigen, sich nur in der Schreibweise unterscheidenden Verzeichnissen nur eines davon anzeigen - ist aber nur geraten, hab ich noch nie probiert.

MfG Dalai

himitsu 14. Mär 2016 14:42

AW: Advanced Installer erstellt gleichnamige Verzeichnisse und Registryschlüssel
 
NTFS ist case-insensitive, also der FileSystemDriver lässt sowas nicht zu, da a = A;
Und nicht Linux macht das, sondern z.B. deren FileSystem(e) ala ext/ext2/ext3/ext4 arbeiten case-sensitiv, womit a <> A.

bra 14. Mär 2016 14:50

AW: Advanced Installer erstellt gleichnamige Verzeichnisse und Registryschlüssel
 
Zitat:

Zitat von himitsu (Beitrag 1332919)
NTFS ist case-insensitive, also der FileSystemDriver lässt sowas nicht zu, da a = A;
Und nicht Linux macht das, sondern z.B. deren FileSystem(e) ala ext/ext2/ext3/ext4 arbeiten case-sensitiv, womit a <> A.

Falsch, NTFS ist case sensitive, allerdings lässt es keinen vernünftigen Zugriff auf mehrere Dateien mit unterschiedlichem Namen in einem Verzeichnis zu.

Siehe auch https://support.microsoft.com/de-de/kb/100625

himitsu 14. Mär 2016 15:28

AW: Advanced Installer erstellt gleichnamige Verzeichnisse und Registryschlüssel
 
Sagte ich doch? ... Der Dateisystemtreiber von Windows ist der Schuldige.
Aber OK, das Dateisystem selber mag vielleicht case-sensitiv sein, aber die Standardtreiber von Windows "nutzen" das halt nicht.

jaenicke 14. Mär 2016 20:31

AW: Advanced Installer erstellt gleichnamige Verzeichnisse und Registryschlüssel
 
Egal welchen Dateimanager ich benutze (Windows Explorer, Speed Commander, ...), es existieren zwei Verzeichnisse. Auch auf der Kommandozeile mit dir usw. werden beide angezeigt. Auch FindFirst, FindNext findet beide Verzeichnisse und in den Ergebnissen waren definitiv keine unterschiedlichen Zeichen.

Und bei der Registry werden diese sowohl über die API als auch über regedit beide angezeigt.

Dalai 14. Mär 2016 21:10

AW: Advanced Installer erstellt gleichnamige Verzeichnisse und Registryschlüssel
 
Dann wäre es vielleicht nicht verkehrt, wenn du die Namen der Verzeichnisse von einer CMD kopieren (bzw. die Ausgabe des dir-Befehls in eine Datei umleitest) und mal im Editor vergleichen würdest. Oder du stellst sie hier ins Forum; manchmal sehen mehr Augen mehr als zwei.

MfG Dalai

Sir Rufo 14. Mär 2016 21:31

AW: Advanced Installer erstellt gleichnamige Verzeichnisse und Registryschlüssel
 
Beliebt sind so seltsame Unicodezeichen, die dann wie Fliegendreck auf dem Bildschirm aussehen, nur das der Dreck beim Scrollen mitwandert :stupid:

bra 15. Mär 2016 08:54

AW: Advanced Installer erstellt gleichnamige Verzeichnisse und Registryschlüssel
 
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:

Zitat von Sir Rufo (Beitrag 1332939)
Beliebt sind so seltsame Unicodezeichen, die dann wie Fliegendreck auf dem Bildschirm aussehen, nur das der Dreck beim Scrollen mitwandert :stupid:

Meinst du sowas? :lol:

Ich würde die Zeichen auch mal in einem Editor vergleichen. Es gibt z.B. auch dieses Non-Breakable-Space (Alt + 0160).

himitsu 15. Mär 2016 10:33

AW: Advanced Installer erstellt gleichnamige Verzeichnisse und Registryschlüssel
 
Was sagen die?
Code:
dir c:\ /n /x > %userprofile%\desktop\meindreck.txt

dir /n /x > %userprofile%\desktop\meindreck.txt

jaenicke 16. Mär 2016 03:04

AW: Advanced Installer erstellt gleichnamige Verzeichnisse und Registryschlüssel
 
Am Ende habe ich die Ergebnisse von FindFirst/FindNext im Assembler Modus im Speicher verglichen. Und siehe da, es war wirklich Zeichen 160 drin...
Das fiese daran: in einem Compare Tool wurde das als identisch angezeigt...

Danke an alle!

Luckie 16. Mär 2016 03:20

AW: Advanced Installer erstellt gleichnamige Verzeichnisse und Registryschlüssel
 
Zeichen 160?

Sherlock 16. Mär 2016 06:42

AW: Advanced Installer erstellt gleichnamige Verzeichnisse und Registryschlüssel
 
Zitat:

Zitat von bra (Beitrag 1332954)
Es gibt z.B. auch dieses Non-Breakable-Space (Alt + 0160).

;)


Sherlock


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:36 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