[SOLVED] Falscher Programmaufruf bei ähnlichen Dateinamen

German support forum

Moderators: Hacker, Stefan2, white

Post Reply
User avatar
X-Byte
Member
Member
Posts: 173
Joined: 2004-11-29, 09:34 UTC
Location: Hessen, Germany

[SOLVED] Falscher Programmaufruf bei ähnlichen Dateinamen

Post by *X-Byte »

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.
Last edited by X-Byte on 2007-01-05, 11:46 UTC, edited 1 time in total.
User avatar
sqa_wizard
Power Member
Power Member
Posts: 3896
Joined: 2003-02-06, 11:41 UTC
Location: Germany

Post by *sqa_wizard »

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]"
#5767 Personal license
User avatar
X-Byte
Member
Member
Posts: 173
Joined: 2004-11-29, 09:34 UTC
Location: Hessen, Germany

Post by *X-Byte »

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.
User avatar
Dalai
Power Member
Power Member
Posts: 10019
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

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
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
X-Byte
Member
Member
Posts: 173
Joined: 2004-11-29, 09:34 UTC
Location: Hessen, Germany

Post by *X-Byte »

Verdammt, somit habe ich unnötigerweise das Rad, bzw den Bug neu erfunden... :roll:

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.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50843
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

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?
Author of Total Commander
https://www.ghisler.com
User avatar
Lefteous
Power Member
Power Member
Posts: 9537
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

2ghisler(Author)
Kannst du bitte mal ein Beispiel bringen wie genau du WinExec aufrust?
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50843
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Beim Starten einer Programmdatei (EXE) mit ENTER auf einer CD.
Author of Total Commander
https://www.ghisler.com
User avatar
Lefteous
Power Member
Power Member
Posts: 9537
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

2ghisler(Author)
Meine Idee wäre ein simples Beispielprogramm zu machen, mit denen dann die Benutzer ausprobieren können was das Problem ist.
User avatar
X-Byte
Member
Member
Posts: 173
Joined: 2004-11-29, 09:34 UTC
Location: Hessen, Germany

Post by *X-Byte »

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?
User avatar
Lefteous
Power Member
Power Member
Posts: 9537
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

2X-Byte
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);
So funktioniert es:

Code: Select all

WinExec ("\"E:\\Lister Freeware 1.0 - List Squared.exe\"", SW_SHOWNORMAL);
User avatar
X-Byte
Member
Member
Posts: 173
Joined: 2004-11-29, 09:34 UTC
Location: Hessen, Germany

Post by *X-Byte »

2Lefteous

Super! Darauf muss man erst mal kommen, dass man nochmal die escapeten Anführungszeichen einfügen muss.
Ich würde sagen, diesen Bug kann Christian in wenigen Sekunden fixen ;-)

Vielen Dank für die zügige Ursachenforschung und Lösungsfindung! :D
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50843
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Ah, verstehe, danke für die Tests! Ich werde das in TC7 beta 3 ändern!
Author of Total Commander
https://www.ghisler.com
Post Reply