1

我有一个名为“main”的编译 C++ 程序。
我不想从终端运行程序,而是想单击网页上的按钮来运行它。
我该怎么做呢?


在此示例中,浏览器下载程序而不是运行它。

<!DOCTYPE html>
<head>
    <meta charset="utf-8">
    <title>title</title>
</head>
<body>
    <form name="input" action="main" method="post">
        <input type="submit" value="Run Program">
    </form>
</body>
</html>
4

4 回答 4

4

如果没有本地运行的 Web 服务器,就无法做到这一点。通过点击网页直接启动程序会导致严重的安全问题。

如果您在 Windows 上,并且真的想从 HTML 页面启动可执行文件,那么请考虑使用HTA示例)。

== 编辑 ==

我刚刚意识到我上面提到的示例显示了一种直接从浏览器启动程序(notepad.exe)的方法。将此代码另存为test.html,在 Internet Explorer 中打开它,然后单击按钮:

<html> 
<head> 
<script language="VBScript"> 
    Sub RunProgram 
        Set objShell = CreateObject("Wscript.Shell")
        objShell.Run "notepad.exe"
    End Sub
</script> 
</head> 
<body> 
<button onclick="RunProgram">Run Program</button> <p>
</body> 
</html>

您将收到警告,但单击“是”后,记事本将启动。

于 2012-12-17T07:58:44.977 回答
2

使用 JavaScript:

<script type="text/javascript" language="javascript">
        function RunFile() {
        WshShell = new ActiveXObject("WScript.Shell");
        WshShell.Run("c:/windows/system32/notepad.exe", 1, false);
        }
>
于 2012-12-17T08:47:46.103 回答
0

如果您打算仅自己使用它,请执行以下操作。创建一个 .run 文件,其中包含要运行的程序的描述。它可能包含以下值:

D:\Programs\MyProgram.exe
Parameter1
Parameter2
Parameter3

然后创建一个简单的程序(所谓的 runner),它读取一个运行文件,解析它并调用 CreateProcess() 在其内容中描述的程序。将其与 .run 文件相关联。最后在您的网页中创建一个指向 .run 文件的链接 - 这样您的运行程序将执行其内容。这不需要在您的本地机器上安装网络服务器,但此解决方案不可扩展(例如,除非注册运行程序,否则您的客户将无法使用它)并且并不真正安全。它不应该引发任何系统警告,也不需要在 HTML 中嵌入脚本。

于 2012-12-17T08:14:52.523 回答
0

您在您的网络服务器中使用 phpsh,并且您调整 pspsh 以直接运行您的/您的程序,而不是返回终端提示符,以便 http://webserver/main 是直接运行主程序的 phpsh 脚本,所以您必须相应地设置您的路径,即 apache用户有权运行应用程序

另一种选择是将c程序编写为cgi并由cgi处理表单

于 2014-06-30T11:18:06.863 回答