1

C#の背後にあるコードを使用してasp.netのボタンクリックでメモ帳、電卓を開こうとしています。コードを試してみました

 System.Diagnostics.Process.Start("c:\\windows\\system32\\notepad.exe");

これはローカルシステムでは正常に機能していますが、サーバーでは機能していません。私もjavascriptで試しました

function executeCommands(inputparms)
{
alert('ff');
var oShell = new ActiveXObject("Shell.Application");
var commandtoRun = "C:\\Winnt\\Notepad.exe";
if (inputparms != "")
{
    var commandParms = document.form1.filename.value;
}

oShell.ShellExecute(commandtoRun, commandParms, "", "open", "1");
}

これでもうまくいきません。サーバーのメモ帳を邪魔することなく、クライアント側でメモ帳アプリケーションを開く方法について教えてください。

4

6 に答える 6

5

これはできません。Webページがクライアントマシン上で任意のプログラムを実行できるとしたら、セキュリティが混乱することを想像してみてください。えっ、ちょっと待って... ;-)

于 2011-04-19T06:10:32.970 に答える
2

これは不可能です(ただし、一般的には、さまざまなアプレットやブラウザプラグインを使用して回避できる可能性があります)。実際、私のコンピューター上で任意のプログラムを実行できるWebページがあれば、私はかなり悔しい思いをします。

于 2011-04-19T06:08:51.773 に答える
1

これはできません。ASP.NETはサーバー上で実行され、クライアントコンピューター上でプログラムを実行することはできません。表示したActiveXオブジェクトは、IEでのみ、ユーザーが明示的に実行を許可した後にのみ機能するはずです。また、notepad.exeの場所は、クライアントによって異なる場合があります(c:\ windows、c:\ winnt、...など、LinuxやMacOSで実行されている一部のクライアントにはそのような実行可能ファイルがありません)。

于 2011-04-19T06:08:00.420 に答える
1

ASP.Netの場合、アプリケーションの性質上、達成しようとしていることは不可能です。アプリケーションはサーバー上で実行され、クライアント側のHTMLのみをクライアントに送信します。コードが構文的に正しい場合でも、サーバー自体のユーティリティが開きます。

于 2011-04-19T06:10:11.567 に答える
-2

これは、サーバーボタンまたはリンクをクリックして以下のコードを使用することで可能になります。System.Diagnostics.Process.Start( "notepad.exe");

于 2012-04-19T02:46:29.460 に答える
-2
System.Diagnostics.Process.Start("C:\Windows\System32\calc.exe")

ブラウザの設定を調整する必要があるかもしれませんが、正常に動作します。calc.exeがディレクトリにあることを確認してください。

于 2012-06-25T21:58:31.803 に答える