[SOLVED] Falscher Programmaufruf bei ähnlichen Dateinamen
Moderators: Hacker, Stefan2, white
[SOLVED] Falscher Programmaufruf bei ähnlichen Dateinamen
Unter folgenden Umständen wird immer das Programm mit dem kürzeren Dateinamen gestartet:
- Die Dateinamen haben den gleichen Anfang und die gleiche Extension.
- Die Dateien müssen sich auf einer CD im selben Verzeichnis befinden.
Beispiel:
Mein Programm 1.Exe
Mein Programm 1 - Erweitert.Exe
Wenn nun per Enter oder Doppelklick "Mein Programm 1 - Erweitert.Exe" gestartet werden soll, wird stattdessen "Mein Programm 1.Exe" gestartet.
D.h. scheinbar "gewinnt" das Programm mit dem kürzeren Dateinamen und wird aufgerufen.
Im Windows Explorer funktioniert dies hingegen korrekt.
Dies scheint ausschließlich das Aufrufen von Programmen zu betreffen, Funktionen wie das Packen oder Datei im Viewer öffnen funktionieren wie erwartet.
Auch ist dieses Fehlverhalten nur bei Dateien auf CDs zu beobachten, bei FAT32/NTFS funktioniert es einwandfrei.
- Die Dateinamen haben den gleichen Anfang und die gleiche Extension.
- Die Dateien müssen sich auf einer CD im selben Verzeichnis befinden.
Beispiel:
Mein Programm 1.Exe
Mein Programm 1 - Erweitert.Exe
Wenn nun per Enter oder Doppelklick "Mein Programm 1 - Erweitert.Exe" gestartet werden soll, wird stattdessen "Mein Programm 1.Exe" gestartet.
D.h. scheinbar "gewinnt" das Programm mit dem kürzeren Dateinamen und wird aufgerufen.
Im Windows Explorer funktioniert dies hingegen korrekt.
Dies scheint ausschließlich das Aufrufen von Programmen zu betreffen, Funktionen wie das Packen oder Datei im Viewer öffnen funktionieren wie erwartet.
Auch ist dieses Fehlverhalten nur bei Dateien auf CDs zu beobachten, bei FAT32/NTFS funktioniert es einwandfrei.
Last edited by X-Byte on 2007-01-05, 11:46 UTC, edited 1 time in total.
- sqa_wizard
- Power Member
- Posts: 3896
- Joined: 2003-02-06, 11:41 UTC
- Location: Germany
Zum Starten des Programms wir immer der kurze Dateiname (8.3 Notation) verwendet.
Nach meiner Erfahrung liegt das Verhalten daran, dass auf der CD (fehlerhaft) kurze Dateinamen doppelt vergeben wurden.
Normalerweise wird es vom Brennprogramm verhindert, man kann den Check aber auch ausschalten.
Du kannst es überprüfen, wenn du im TC mit "cm_SwitchLongNames" auf die kuze Schreibweise umschaltest.
(merke dir Dateigrössen bzw. Datum um diese wiederzufinden)
Eleganter geht es mit einer Benutzerdefinierte Ansicht mit der Spalte "[=tc.DOS-Name]"
Nach meiner Erfahrung liegt das Verhalten daran, dass auf der CD (fehlerhaft) kurze Dateinamen doppelt vergeben wurden.
Normalerweise wird es vom Brennprogramm verhindert, man kann den Check aber auch ausschalten.
Du kannst es überprüfen, wenn du im TC mit "cm_SwitchLongNames" auf die kuze Schreibweise umschaltest.
(merke dir Dateigrössen bzw. Datum um diese wiederzufinden)
Eleganter geht es mit einer Benutzerdefinierte Ansicht mit der Spalte "[=tc.DOS-Name]"
#5767 Personal license
Dies trifft in meinem Fall nicht zu, die 8.3 Namen sind unterschiedlich, haben nach der abkürzenden Tilde (~) jeweils ein unterschiedliches Zeichen angehängt.
Zusätzlich habe ich mir auch nochmal mit ISO Buster den ISO Teil der CD betrachtet, auch hier werden definitiv unterschiedlche Dateinamen benutzt.
Die CD selbst wurde mit den Default Einstellungen von NeroExpress 6.6 erstellt. Von hier sollten also keine Probleme zu erwarten sein.
Hiervon ist auch nicht nur eine bestimmte CD betroffen, ich habe dieses Verhalten schon bei mehreren CDs mit ähnlichem Dateinamensaufbau beobachtet.
Nachtrag:
Durch deinen Tip, auf die 8.3 Anzeige im TC umzustellen ist mir aufgefallen, dass der Aufruf des Programms mit längerem Dateinamen in dieser Ansicht funktioniert!
Sobald wieder die "normale" Ansicht mit langen Dateinamen aktiviert wird, geht es wieder nicht mehr.
Sieht mir doch sehr nach einem kleinen Bug im Total Commander aus.
Zusätzlich habe ich mir auch nochmal mit ISO Buster den ISO Teil der CD betrachtet, auch hier werden definitiv unterschiedlche Dateinamen benutzt.
Die CD selbst wurde mit den Default Einstellungen von NeroExpress 6.6 erstellt. Von hier sollten also keine Probleme zu erwarten sein.
Hiervon ist auch nicht nur eine bestimmte CD betroffen, ich habe dieses Verhalten schon bei mehreren CDs mit ähnlichem Dateinamensaufbau beobachtet.

Durch deinen Tip, auf die 8.3 Anzeige im TC umzustellen ist mir aufgefallen, dass der Aufruf des Programms mit längerem Dateinamen in dieser Ansicht funktioniert!
Sobald wieder die "normale" Ansicht mit langen Dateinamen aktiviert wird, geht es wieder nicht mehr.
Sieht mir doch sehr nach einem kleinen Bug im Total Commander aus.
Ich habe das Problem auch schon festgestellt und auch gemeldet gehabt (siehe http://www.ghisler.ch/board/viewtopic.php?t=9965). Bisher habe ich keine Lösung gefunden.
MfG Dalai
MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Verdammt, somit habe ich unnötigerweise das Rad, bzw den Bug neu erfunden...
Schade dass auf dein letztes Reply keine Reaktion mehr von Christian Ghisler kam und das ganze im Sande verlaufen ist.
Ich habe das ganze testweise mal mit den Commander-Alternativen TwoDirs und FreeCommander ausprobiert. Hier funktioniert der Programmaufruf wie erwartet korrekt.
Also ist das wohl eher ein TC- oder Delphi-spezifischer Bug. Verwunderlich ist auch, dass alternative Methoden, wie Shift+Enter, Ctrl+Enter und die 8.3 Ansicht dieses Problem nicht haben.
Ich habe im TC Wiki in der Sektion Known version-lasting bugs without workaround mal einen Artikel unter Wrong program launched from CD bug dafür erstellt.
Vielleicht hilft das dem ein oder anderen, diesen Bug an prominenter Stelle zu finden, anstatt sich über die Forumsuche mit vagen Begriffsdefinitionen zum Bugbericht durchzuwühlen.

Schade dass auf dein letztes Reply keine Reaktion mehr von Christian Ghisler kam und das ganze im Sande verlaufen ist.
Ich habe das ganze testweise mal mit den Commander-Alternativen TwoDirs und FreeCommander ausprobiert. Hier funktioniert der Programmaufruf wie erwartet korrekt.
Also ist das wohl eher ein TC- oder Delphi-spezifischer Bug. Verwunderlich ist auch, dass alternative Methoden, wie Shift+Enter, Ctrl+Enter und die 8.3 Ansicht dieses Problem nicht haben.
Ich habe im TC Wiki in der Sektion Known version-lasting bugs without workaround mal einen Artikel unter Wrong program launched from CD bug dafür erstellt.
Vielleicht hilft das dem ein oder anderen, diesen Bug an prominenter Stelle zu finden, anstatt sich über die Forumsuche mit vagen Begriffsdefinitionen zum Bugbericht durchzuwühlen.
- ghisler(Author)
- Site Admin
- Posts: 50843
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
Leider habe ich bisher keinen Grund für den Fehler gefunden, und auch keine CD, bei der das auftritt. Ich vermute, dass da ein Masteringfehler vorliegt.
Total Commander benutzt bei CDs WinExec statt ShellExecuteEx, weil ShellExecuteEx bei einigen CDs nicht zu funktionieren scheint. Vielleicht hat ja nur WinExec einen Fehler, der das obige Problem verursacht, und die anderen Programme benutzen alle ShellExecuteEx?
Total Commander benutzt bei CDs WinExec statt ShellExecuteEx, weil ShellExecuteEx bei einigen CDs nicht zu funktionieren scheint. Vielleicht hat ja nur WinExec einen Fehler, der das obige Problem verursacht, und die anderen Programme benutzen alle ShellExecuteEx?
Author of Total Commander
https://www.ghisler.com
https://www.ghisler.com
- ghisler(Author)
- Site Admin
- Posts: 50843
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
Beim Starten einer Programmdatei (EXE) mit ENTER auf einer CD.
Author of Total Commander
https://www.ghisler.com
https://www.ghisler.com
Ich habe hier mal ein 7Z Archiv (335KB) abgelegt, das 2 Images enthält, einmal von Nero Express 6.6 (test.nrg) erstellt, einmal von ImgBurn 2.1.0.0 (test.iso).
Die Images können gebrannt oder z.B. mit den DAEMON Tools gemountet werden.
Es sind kleine Freewareprogramme, deren Namen ich einfach entsprechend den Fehlerbedingungen abgeändert habe.
Auffällig ist hierbei (gemountet mit DAEMON Tools) die Variante, dass es hier beim Aufruf eines "verlängerten" Programms zu einer Fehlermeldung "Cannot access file!" des Commanders kommt, wobei der in der Fehlermeldung angezeigte Dateiname nur ein Fragment des eigentlich Dateinamens enthält:
Image: http://img237.imageshack.us/img237/1665/snap1rb1.png
Image: http://img402.imageshack.us/img402/6544/snap2mh8.png
Aber auch in diesem Fall funktionieren die Workarounds (Shift+Enter oder Ctrl+Enter oder Explorer Kontextmenü) einwandfrei.
P.S: Wieso funktioniert die im Thread integrierte Bildanzeige nicht? Oder ist das eine Spam/Wurm Vorsichtsmaßnahme?
Die Images können gebrannt oder z.B. mit den DAEMON Tools gemountet werden.
Es sind kleine Freewareprogramme, deren Namen ich einfach entsprechend den Fehlerbedingungen abgeändert habe.
Auffällig ist hierbei (gemountet mit DAEMON Tools) die Variante, dass es hier beim Aufruf eines "verlängerten" Programms zu einer Fehlermeldung "Cannot access file!" des Commanders kommt, wobei der in der Fehlermeldung angezeigte Dateiname nur ein Fragment des eigentlich Dateinamens enthält:
Image: http://img237.imageshack.us/img237/1665/snap1rb1.png
Image: http://img402.imageshack.us/img402/6544/snap2mh8.png
Aber auch in diesem Fall funktionieren die Workarounds (Shift+Enter oder Ctrl+Enter oder Explorer Kontextmenü) einwandfrei.
P.S: Wieso funktioniert die im Thread integrierte Bildanzeige nicht? Oder ist das eine Spam/Wurm Vorsichtsmaßnahme?
2X-Byte
Ich habe mir das gerade mal angeschaut. TC ruft die Programme etwa so auf:
So funktioniert es:
Ich habe mir das gerade mal angeschaut. TC ruft die Programme etwa so auf:
Code: Select all
WinExec ("E:\\Lister Freeware 1.0 - List Squared.exe", SW_SHOWNORMAL);
Code: Select all
WinExec ("\"E:\\Lister Freeware 1.0 - List Squared.exe\"", SW_SHOWNORMAL);
- ghisler(Author)
- Site Admin
- Posts: 50843
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
Ah, verstehe, danke für die Tests! Ich werde das in TC7 beta 3 ändern!
Author of Total Commander
https://www.ghisler.com
https://www.ghisler.com