6

Mam aplikację systemu Windows (plik EXE jest napisany w języku C i zbudowany przy użyciu MS-Visual Studio), który wyprowadza tekst ASCII na standardowe wyjście. Chciałbym rozszerzyć tekst ASCII o ograniczony kod HTML za pomocą kilku linków. Chciałbym wywołać tę aplikację (plik .EXE) i pobrać dane wyjściowe tej aplikacji i potokować ją w przeglądarce. To nie jest jednorazowa sprawa, każda nowa strona będzie kolejnym uruchomieniem aplikacji lokalnej!Jak mogę uruchomić lokalną aplikację systemu Windows i czy dane wyjściowe mają być przesyłane do przeglądarki?

Poniższa aplikacja do obsługi skryptów HTML/java działała dla mnie, aby uruchomić aplikację, ale dane wyjściowe zostały umieszczone w oknach systemu DOS, a nie w przeglądarce. Chciałbym zaktualizować tę aplikację HTML, aby umożliwić przeglądarce przechwytywanie tego tekstu (ulepszonego przez HTML) i wyświetlać go w przeglądarce.

<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> 

Odpowiedz

2
  1. Czy wykonywalny nasłuchuje na porcie zgodnie z protokołem HTTP.
  2. Następnie, aby strona WWW tworzyła żądania HTTP w stylu AJAX do portu lokalnego za pomocą JAvascript.
  3. Plik wykonywalny zwraca tekst.
  4. Strona aktualizuje się poprzez manipulację DOM w JavaScript.

Tak, to działa. Odbywa się teraz 5 stóp ode mnie w innym pomieszczeniu.

+0

Mógłbyś podać mi wytycznej szczegółów na ten temat? –

+0

Haikal, która część jest niejasna, w jaki sposób można to osiągnąć? –

+0

Na części do słuchania. Czy istnieje przewodnik/samouczek dotyczący aplikacji kodującej, która nasłuchuje określonego portu? –

0

Łatwiej byłoby utworzyć plik tymczasowy zawierający kod HTML, a następnie po prostu powiedzieć systemowi Windows, aby otworzył tymczasowy plik HTML w przeglądarce.

2

Twój już używający WScript do uruchomienia, może również przeczytać StdOut.

<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

To się nazywa CGI

+0

+10. To jest właściwy sposób, aby to zrobić. Zapisywanie plików tymczasowych jest nieporządne, ponieważ WSH słucha StdOut, wydaje się zbyt odjazdowy i nie ma absolutnie żadnego powodu, aby wprowadzić złożoność serwera WWW do pliku wykonywalnego. – josh3736

Powiązane problemy