6

Tôi có Ứng dụng Windows (tệp .EXE được viết bằng C và được xây dựng với MS-Visual Studio), xuất ra văn bản ASCII để xuất chuẩn. Tôi đang tìm cách nâng cao văn bản ASCII để bao gồm HTML giới hạn với một vài liên kết. Tôi muốn gọi ứng dụng này (.EXE File) và lấy đầu ra của ứng dụng đó và đưa nó vào một Trình duyệt. Đây không phải là điều một lần, mỗi trang web mới sẽ là một lần chạy khác của Ứng dụng cục bộ!Làm cách nào để chạy một Ứng dụng Windows cục bộ và có đầu ra được đưa vào Trình duyệt

Ứng dụng HTML/java-script bên dưới đã làm việc cho tôi để thực thi ứng dụng, nhưng đầu ra đã đi vào cửa sổ DOS Box và không đưa nó vào Trình duyệt. Tôi muốn cập nhật Ứng dụng HTML này để cho phép Trình duyệt nắm bắt văn bản đó (được nâng cao bằng HTML) và hiển thị nó bằng trình duyệt.

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

Trả lời

2
  1. Có thể thực thi nghe trên cổng sau giao thức HTTP.
  2. Sau đó, hãy tạo trang web tạo yêu cầu HTTP kiểu AJAX cho cổng cục bộ bằng JAvascript.
  3. Văn bản trả về khả thi.
  4. Trang web tự cập nhật thông qua thao tác DOM trong Javascript.

Có, tính năng này hoạt động. Nó đang xảy ra cách tôi 5 feet trong một căn phòng khác.

+0

Ông có thể cung cấp cho tôi với các chi tiết hướng dẫn về vấn đề này? –

+0

Haikal, phần nào không rõ ràng về cách thức đạt được? –

+0

Trên phần nghe. Có hướng dẫn/hướng dẫn nào về ứng dụng mã hóa lắng nghe cổng cụ thể không? –

0

Sẽ dễ dàng hơn để EXE tạo tệp tạm thời chứa HTML, sau đó chỉ yêu cầu Windows mở tệp HTML tạm thời trong trình duyệt.

2

WScript đã sử dụng của bạn để khởi chạy, nó cũng có thể đọc 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

này được gọi là CGI

+0

+10. Đây là cách thích hợp để làm điều này. Viết các tập tin tạm thời là lộn xộn, có WSH nghe StdOut cảm thấy cách quá hacky, và hoàn toàn không có lý do để giới thiệu sự phức tạp của một máy chủ web vào thực thi. – josh3736

Các vấn đề liên quan