1

「main」と呼ばれるコンパイル済みの C++ プログラムがあります。
端末からプログラムを実行する代わりに、Web ページのボタンをクリックして実行したいと考えています。
どうすればこれを行うことができますか?


この例では、ブラウザはプログラムを実行する代わりにダウンロードします。

<!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 サーバーがローカルで実行されていないと、これを行う方法はありません。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

次に、実行ファイルを読み取り、それを解析し、CreateProcess() によってその内容に記述されたプログラムを呼び出す単純なプログラム (いわゆるランナー) を作成します。.run ファイルに関連付けます。最後に、Web ページ内に .run ファイルへのリンクを作成して、ランナーがその内容を実行できるようにします。これにはローカル マシンに Web サーバーは必要ありませんが、このソリューションはスケーラブルではなく (たとえば、ランナーを登録しない限り、クライアントは使用できません)、実際には安全ではありません。ただし、システム警告が発生することはなく、HTML にスクリプトを埋め込む必要もありません。

于 2012-12-17T08:14:52.523 に答える