Fischer: Wertübergabe an HTA

Beitrag lesen

Guten Tag! Ich habe beim Durchsuchen des Forums gesehen, daß sich einige Leute mit HTAs befassen, diese Frage ist aber leider nirgends aufgetaucht: Wie schaffe ich es, einer HTA-Applikation (z.B. aus einem Skript heraus) einen Wert zu übergeben?

Zum Hintergrund: Ich bin dabei, meine hauseigenen Rechner (Windows 95 bis Me; XP erst, wenn billig auf ebay) zu "verskripten". Es geht also nur um eine lokale Umgebung ohne Web, und es gibt - falls sich jemand Sorgen macht - auch keine schützenswerten Benutzer außer mir selber.
Ich habe dabei verschiedene eigene Dateitypen registriert. Bei einigen reicht es aus, sie von einem Skript aufrufen zu lassen:

[HKEY_CLASSES_ROOT\XYZDatei\shell\open\command]
@="wscript.exe C:\...\xyzSkript.js "%1" xyzParameter"

übergibt bei einem Doppelklick auf Datei.xyz den Pfad und Dateinamen sowie weitere Parameter an das Skript. Aber was mache ich nun, wenn das Skript in eine HTA eingebettet ist oder wenn es eine HTA aufrufen soll? Mit diesen Lösungsansätzen komme ich nicht recht weiter:

1. Befehlszeilenparameter
Ich sehe, daß HTAs folgendermaßen registriert sind:

[HKEY_CLASSES_ROOT\htafile\Shell\Open\Command]
@="C:\WIN9X\SYSTEM\MSHTA.EXE "%1" %*"

Ich muß zugeben, daß mir völlig schleierhaft ist, was das "%*" bedeuten soll. Googeln hat mir dabei auch nicht geholfen, kann aber auch an den Sonderzeichen liegen. Aber selbst wenn es möglich ist, MSHTA.EXE außer dem Pfad und Namen der HTA-Datei noch weitere Parameter zu übergeben, wie sollte ich sie dann in innerhalb der HTA auslesen? WScript.Arguments bringt nichts, weil das Skript nicht vom WSH gehostet wird, sondern von MSHTA bzw. IE.
var shell=new ActiveXObject("WScript.Shell") funktioniert bekanntlich in HTA-Dokumenten, var param=new ActiveXObject ("WScript.Arguments") (frech!!) funktioniert nicht.

2. Bekannte Techniken zur Wertübergabe zwischen HTML-Dateien
Es gibt ja einige schöne, in selfaktuell ausführlich diskutierte Tricks, Javascript-Variablen zwischen HTML-Dokumenten zu übergeben, die aber alle - soweit ich das sehe - mit HTAs scheitern. Es ist z.B. möglich, eine HTA fehlerfrei von der Konsole mit
mshta.exe "C:\xyz.hta?Wert"
zu laden, der "Wert" läßt sich aber nicht mit location.search auslesen. Ich weiß auch nicht, wie ich dem HTA-Fenster von vornherein und von "außen" einen bestimmten window.name zuweisen könnte. Kann es sein, daß Microsoft vergessen hat, MSHTA.EXE "scriptable" zu machen? Es gibt zwar eine "InternetExplorer.Application", aber offenbar keine "MSHTA.Application" (oder so ähnlich), mit der man vielleicht von einem Skript aus etwas erreichen könnte.

3. Umgebungsvariablen
Das einzige, was mir noch einfällt, ist, mit einem Skript eine Umgebungsvariable %htaparam% (oder so) zu erstellen und diese dann von einem Skript in der HTA wieder auszulesen. Das dürfte funktionieren, aber - - - das kann's doch nicht sein, oder?

Auf Antworten bin ich sehr gespannt!!