clemens: EXE-Datei starten über eine HTML-Datei starten

Beitrag lesen

Hi Alex

Eine html Seite kann einen body haben. Eine hta Seite auch. Hta Seiten sind nur ab dem Explorer 5.0 lauffähig. Davor nicht und unter Netscape auch nicht. Stefan Münz hat einen Thread mit zwei links darüber geschrieben, such im Archiev (ich weiss den link nicht mehr). Wenn Du die Programmaufrufe unbedingt aus html Seiten starten willst, ist das etwas komplizierter, weil für eine html Seite die hta Seite nicht ersichtlich ist (kein opener und auch kein referrer) und aus der htm seite nicht direkt möglich. Das mit dem link auf einen link (eine andere Antwort) habe ich nicht gewusst und ist sehr interessant. Sonst mußt Du mit Flags (oder einer anderen Übergabe)arbeiten. Ich gebe Dir dann ein Beispiel. Einfacher ist es, wenn Du aus der hta arbeitest. ZB so. Die hta:

<html>
<head>
<title>FGSS - nicht schließen</title>
<HTA:APPLICATION ID="oHTA"
     APPLICATIONNAME="myApp"
     BORDER="thin"
     BORDERSTYLE="normal"
     CAPTION="yes"
     ICON=""
     MAXIMIZEBUTTON="yes"
     MINIMIZEBUTTON="yes"
     SHOWINTASKBAR="yes"
     SINGLEINSTANCE="yes"
     SYSMENU="yes"
     VERSION="1.00"
     WINDOWSTATE="maximized"
    >

</head>
<script language="JavaScript">
function run_program(Startwunsch)
{
obj=new ActiveXObject('WScript.Shell');
obj.Run (Startwunsch);
}
</script>
<body>
<div onclick="run_program('winword')">Startet Dir Word beim draufklicken</div>
</body>
</html>

Speichere diese Datei als "irgendwas.hta" und führe sie dann aus. Zwischen die body tags kannst Du alles wie sonst auch setzen. Falls Du ein frameset willst, brauchst du sie nicht. Sei mir nicht böse, aber für die lange erklärung mit den flags bin ich zu müde. Du kannst kurz gesagt ein frameset aufmachen und dir dann variablen überlegen, die du so setzt, wie du dir die reaktion aus der hta seite überlegt hast. kurzes beispiel:

zuerst in der hta

Fenster = window.open(....)
window.setTimeout("uberprufen()",100);

function uberprufen()
{
if(Fenster.htaFlag)
{
Fenster.htaFlag = false;
  
switch(Fenster.Aufgabe)
  {

case "speichern":
   alert('mach hier was du willst, zb speichern');
   break;

default:
    break;
  
  }
}
}

in der Fenster Seite (ist eigenes Browserfenster, kann auch frameset sein) schreibst Du in die Variable aufgabe den auftrag, den du dann in der switch anweisung ausführen willst. sobald du die variable htaflag in deinem script auf true setze, startet dit hta anweisung (bzw höchstens 100 millisec später.)

Ich liebe sauber ausgeschriebene antworten. der zweite teil von mir ist das nicht. tut mir leid, ich bin müde. falls du trotzdem nicht weiter kommst, schreibs mir. dann schick ich dir was genaueres. aber probiers bitte trotzdem.

gute nacht.

grüße aus Wien

Clemens