------------------------------------------------------------
Empfaenger : openxp-dev@lists.sourceforge.net
Absender : michael.heydekamp@t-online.de (Michael
Heydekamp)
Software : CrossPoint/OpenXP v3.30.6beta@0410000307 R/C816
Betreff : LFN-Übergabe an DOS-Apps
Datum : Do 05.10.00, 02:41
Groesse : 1727 Bytes
MID : 7nG3vq0ACHB@michael.heydekamp.dialin.t-
online.de
------------------------------------------------------------
Hi alle,
LFN-Unterstützung ist ja ganz nett, hat aber auch ihre Kehrseiten.
Ich bin (zwecks Hilfe, klar) gerade dabei, das Verhalten diverser Viewer-Optionen zu testen, um diese korrekt und verständlich dokumentieren zu können, und falle gleich beim ersten Test auf die Schnauze:
Ich habe als Viewer für GIFs meinen Uralt-QPEG (1.5e) - das ist ein DOS-Programm - eingetragen.
XP übergibt unter Win9x den Dateinamen des MIME-Attachments als "startmenu.gif" (also Dateiname mit 9 Buchstaben, weil halt so im Body der Mail definiert) an QPEG, und QPEG findet das Miststück offensichtlich deshalb nicht! Der exakte Aufruf lautet:
D:\QPEG\QPEG.EXE R:\TEMP\startmenu.GIF
Jetzt der Witz: Unter plain DOS funktioniert alles wunderbar. Die Datei wird korrekt angezeigt, die Aufrufzeile dort lautet:
D:\QPEG\QPEG.EXE R:\TEMP\startmen.GIF
(Dateiname wird offensichtlich einfach nach dem 8. Zeichen
abgeschnitten.)
Aber das kann ja nicht der Sinn der LFN-Unterstützung sein, daß ich jetzt immer erst ins DOS booten muß, um mir LFN-Dateien mit einem DOS-Viewer anschauen zu können. Ohne LFN-Unterstützung seitens XP würde das nämlich auch unter Windows funktionieren (unterstelle ich mal).
Ich kann auch noch nicht sagen, wie man da am besten ansetzen könnte, aber wäre es ein Schaden, an externe Viewer generell den SFN zu übergeben (da müßten ja alle Viewer mit umgehen können)? Oder wäre eine entsprechende Option in Edit/Viewer "kurze Dateinamen übergeben" (der
User weiß ja schließlich, ob er einen LFN-fähigen Viewer verwendet) die bessere Alternative? Oder was wäre der richtige Weg?
= = = = =
Nachtrag:
Da SFN übergeben nicht geht (Dateiname wird erst beim Abspeichern definiert) und auch nicht sinnvoll wäre (erst LFNs einbauen und später wieder kastrieren?), wäre die einzige Lösung, die ich im Moment sehe, eine Option unter /Edit/Viewer ("Viewer ist nicht LFN-fähig" oder so), die erzwingt, daß XP sich unter einem LFN-fähigen OS genauso verhält wie unter DOS (Dateiname wird nach dem achten, Extension nach dem dritten Buchstaben abgeschnitten).
Michael.
Logged In: YES
user_id=69543
Current status: Bug besteht nach wie vor. Inzwischen wissen
wir aber, da es durchaus mglich ist, den SFN 'on the fly'
zu ermitteln ('if LFNEnabled then file := GetShortName
(file)'); also sollte man das wohl tun. *Zustzlich* knnte
man das noch von einem (noch einzubauenden) Schalter
abhngig machen ('if LFNEnabled and PassShortNames then
file := GetShortName(file)').
Logged In: YES
user_id=126984
Es wre evt. auch mglich, statt eines Schalters einfach zu
berprfen, ob es sich bei dem aufgerufenen Programm um ein
DOS-Programm handelt.
Win32 bietet solche Funktionen (und woanders stellt sich das
Problem sowieso nicht). Auf der anderen Seite knnen auch
manche DOS-Programme mit LFNs umgehen -- zum Beispiel
Batchdateien, die ein Win32-Programm aufrufen.
Logged In: NO
einfach an Stelle des Viewers eine Batchdatei mit folgendem
Inhalt eintragen:
----------------
copy "%1" r:\temp\temp.gif"
d:\qpeg\qpeg.exe r:\temp\temp.gif
del r:\temp\temp.gif
-----------
das mte das Problem eigentlich lsen, oder?