我在ASP.Net/C#中有一个Web应用程序(使用MVS),我希望能够在客户端启动一些程序(这应该是安全的,因为它仅用于内部网),并保留这些程序打开以便通过网络应用程序向他们提供一些命令输入。
例如,我想打开“cmd.exe”客户端,然后能够一个接一个地发送多个命令(与我的Web表单的某些按钮同步)到该进程。
我该怎么做?我已经阅读了很多关于使用一个带有ActiveX对象的Javascript块,或者在带有System.Diagnostics.Process
的C#中,但我仍然坚持如何继续。
答案 0 :(得分:1)
function RunEXE()
{
var oShell = new ActiveXObject("WScript.Shell");
var prog = "c:\\WINDOWS\\system32\\notepad.exe";
oShell.Run('"'+prog+'"',1);
}
答案 1 :(得分:1)
您还可以查看自定义协议处理程序,例如,蒸汽使用。您只需拥有myprotocol://dosomething/whatever
之类的链接,它就会使用给定的网址启动您的客户端应用程序。
它基本上只是编写注册表项:http://msdn.microsoft.com/en-us/library/ie/aa767914(v=vs.85).aspx
例如,要注册名为alert
的协议,您可以执行以下操作:
HKEY_CLASSES_ROOT
alert
(Default) = "URL:Alert Protocol"
URL Protocol = ""
DefaultIcon
(Default) = "alert.exe,1"
shell
open
command
(Default) = "C:\Program Files\Alert\alert.exe" "%1"
当您导航到以command
开头的网址时,这会导致alert://
中的应用启动。
答案 2 :(得分:0)
使用c#
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "CMD.EXE";
startInfo.Arguments = "list of args";
Process.Start(startInfo);
此后,您可以通过
继续检查天气是否开启Process[] processes = Process.GetProcesses();
或
Process[] chromes = Process.GetProcessesByName("chrome");
检查您的处理是否已打开,然后将args传递给它