Как я могу запустить локальное Приложение Windows и иметь вывод быть переданным по каналу в Браузер

У меня есть Приложение Windows (.EXE, файл записан в C и создан с Visual Studio MS), что выходной текст ASCII к stdout. Я надеюсь улучшать текст ASCII для включения ограниченного HTML с несколькими ссылками. Я хотел бы вызвать это приложение (.EXE Файл) и взять вывод того приложения и передать его по каналу в Браузер. Это не одна вещь времени, каждая новая веб-страница была бы другим выполнением Локального приложения!

Приложение HTML/java-script ниже работало на меня для выполнения приложения, но вывод вошел в DOS Box окна а не передавать его по каналу в Браузер. Я хотел бы обновить это Приложение HTML, чтобы позволить Браузеру получить тот текст (который улучшен с HTML), и отобразите его с браузером.

<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>
6
задан Adam Robinson 26 April 2010 в 19:38
поделиться

4 ответа

Это называется CGI

2
ответ дан 17 December 2019 в 02:25
поделиться
  1. Заставить исполняемый файл прослушивать порт, соответствующий протоколу HTTP.
  2. Затем пусть веб-страница выполняет HTTP-запросы в стиле AJAX к локальному порту с помощью JAvascript.
  3. Исполняемый файл возвращает текст.
  4. Веб-страница обновляется посредством манипуляций с DOM в Javascript.

Да, это работает. Это происходит в пяти футах от меня прямо сейчас в другой камере.

2
ответ дан 17 December 2019 в 02:25
поделиться

Было бы проще, если бы ваш EXE создал временный файл, содержащий HTML, а затем просто сказал Windows открыть временный HTML-файл в браузере.

0
ответ дан 17 December 2019 в 02:25
поделиться

Вы уже используете WScript для запуска, он также может читать 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
ответ дан 17 December 2019 в 02:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: