6

Ich habe Windows-Anwendung (EXE-Datei ist in C geschrieben und mit MS-Visual Studio gebaut), die ASCII-Text auf stdout ausgibt. Ich freue mich, den ASCII-Text zu verbessern, um begrenzten HTML mit einigen Verbindungen einzuschließen. Ich möchte diese Anwendung (.EXE-Datei) aufrufen und die Ausgabe dieser Anwendung nehmen und sie in einen Browser leiten. Dies ist keine einmalige Sache, jede neue Webseite wäre ein weiterer Lauf der lokalen Anwendung!Wie kann ich eine lokale Windows-Anwendung ausführen und die Ausgabe in den Browser geleitet werden

Die HTML/Java-Script-Anwendung unten hat mir geholfen, die Anwendung auszuführen, aber die Ausgabe ist in ein DOS-Box-Fenster gegangen und nicht in den Browser zu pumpen. Ich möchte diese HTML-Anwendung aktualisieren, damit der Browser diesen (mit HTML erweiterten) Text erfassen und im Browser anzeigen kann.

<body> 
<script> 
function go() { 
    w = new ActiveXObject("WScript.Shell"); 
    w.run('C:/DL/Browser/mk_html.exe'); 
    return true; 
    } 

</script> 

<form> 
    Run My Application (Window with explorer only) 
    <input type="button" value="Go" 
    onClick="return go()"> 
</FORM> 

</body> 

Antwort

2
  1. Haben die ausführbare Datei nach dem HTTP-Protokoll auf einem Port hören.
  2. Lassen Sie dann die Webseite AJAX-ähnliche HTTP-Anfragen an den lokalen Port mit JAvascript stellen.
  3. Die ausführbare Datei gibt Text zurück.
  4. Die Webseite aktualisiert sich selbst durch DOM-Manipulation in Javascript.

Ja, das funktioniert. Es passiert jetzt 5 Fuß von mir entfernt in einer anderen Kabine.

+0

Können Sie mir mit den Details Leitlinie zur Verfügung stellen? –

+0

Haikal, welcher Teil ist unklar, wie es erreicht werden könnte? –

+0

Auf dem hörenden Teil. Gibt es einen Leitfaden/eine Anleitung zum Codieren von Anwendungen, die bestimmte Ports abhören? –

0

Es wäre einfacher, Ihre EXE eine temporäre Datei erstellen zu lassen, die den HTML-Code enthält. Dann sagen Sie Windows einfach, dass Sie die temporäre HTML-Datei im Browser öffnen sollen.

2

Sie verwenden bereits WScript zum Starten, es kann auch StdOut lesen.

<html> 
<head> 
<script type="text/javascript"> 
function foo() { 
var WshShell = new ActiveXObject("WScript.Shell"); 
var oExec = WshShell.Exec("ipconfig.exe"); 
var input = ""; 

while (!oExec.StdOut.AtEndOfStream) { 
     input += oExec.StdOut.ReadLine() + "<br />"; 
} 

if (input) 
    document.getElementById("plop").innerHTML = input; 
} 
</script> 
</head> 
<body onload="foo();"> 
<code id="plop"></code> 
</body> 
</html> 
2

Dies wird CGI genannt auf diese

+0

+10. Dies ist der richtige Weg, dies zu tun. Temporäre Dateien zu schreiben ist unordentlich, WSH zu hören, StdOut fühlt sich viel zu hacky an, und es gibt absolut keinen Grund, die Komplexität eines Webservers in die ausführbare Datei einzuführen. – josh3736

Verwandte Themen