Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript终止进程_Javascript_Wsh - Fatal编程技术网

JavaScript终止进程

JavaScript终止进程,javascript,wsh,Javascript,Wsh,我正在使用JavaScript编写。我有一个进程的PID。我怎么杀它? 您可以使用名称终止,如何使用PID终止 更新:平台是Windows。看起来您正在为Windows脚本主机或Windows桌面小工具编码。如果是,我将使用WScript.Shell及其Exec方法以及命令行taskkill Win XP Pro、Win Vista和Win 7 only: var WshShell = new ActiveXObject("WScript.Shell"); var oExec = WshShel

我正在使用JavaScript编写。我有一个进程的PID。我怎么杀它? 您可以使用名称终止,如何使用PID终止


更新:平台是Windows。

看起来您正在为Windows脚本主机或Windows桌面小工具编码。如果是,我将使用WScript.Shell及其Exec方法以及命令行taskkill Win XP Pro、Win Vista和Win 7 only:

var WshShell = new ActiveXObject("WScript.Shell");
var oExec = WshShell.Exec("taskkill /pid 1234");
如果您真的想使用WMI,那么以下内容对我来说很好,谢谢@Helen的改进:

function killPID (pid) {
  GetObject("winmgmts:").Get("Win32_Process.Handle='" + pid + "'").Terminate();
}

看起来您正在为Windows脚本主机或Windows桌面小工具编码。如果是,我将使用WScript.Shell及其Exec方法以及命令行taskkill Win XP Pro、Win Vista和Win 7 only:

var WshShell = new ActiveXObject("WScript.Shell");
var oExec = WshShell.Exec("taskkill /pid 1234");
如果您真的想使用WMI,那么以下内容对我来说很好,谢谢@Helen的改进:

function killPID (pid) {
  GetObject("winmgmts:").Get("Win32_Process.Handle='" + pid + "'").Terminate();
}

对于Windows 2000,您需要安装Windows支持工具,然后使用外壳中的Kill命令,如Andy E在回答中所述


参考资料:

对于Windows 2000,您需要安装Windows支持工具,然后使用shell中的Kill命令,如Andy E在回答中所述



参考资料:

kill-9 PID???我猜你们一定在谈论Rhino虚拟机。我怀疑任何系统都不会让Javascript执行根级别的命令!您需要告诉我们这是在什么环境下运行的。例如,它是Windows脚本主机上的JScript吗?@PurplePilot:Windows shell脚本可以用Javascript JScript编写。谁投票认为这属于超级用户?这显然是一个编程问题。@Andy E Thank不知道。我想我应该把它限定在浏览器中,浏览器应该是沙盒。如果你真的尝试过,你可以在任何地方跑任何东西-杀死-9 PID???我猜你们一定在谈论Rhino虚拟机。我怀疑任何系统都不会让Javascript执行根级别的命令!您需要告诉我们这是在什么环境下运行的。例如,它是Windows脚本主机上的JScript吗?@PurplePilot:Windows shell脚本可以用Javascript JScript编写。谁投票认为这属于超级用户?这显然是一个编程问题。@Andy E Thank不知道。我想我应该把它限定在浏览器中,浏览器应该是沙盒。如果你真的尝试过,你可以在任何地方跑任何东西-我在windo 2000和windows server 2003中需要它,为什么不从Win32_进程中使用ExecQuerySELECT*,其中Handle='+pid+'而不是InstancesOf+if?@Helen,你可以这样做,但你仍然需要枚举它们。这是一个更好的方法,我将用我的代码来交换它。再想一想,它甚至可以更简单——只需获取Win32_进程。Handle='+pid+',而不需要枚举。这是因为句柄是唯一标识Win32_进程对象的键属性。对不起,我可能不清楚。如果在一行中写入函数体,则函数体可以是GetObjectwinmgmts:.GetWin32_Process.Handle='+pid+'。Terminate,如果找到具有指定ID的进程,我可以确认此代码在Windows XP上工作;否则将引发一个异常,该异常可以通过try…catch捕获。事实上,它应该可以在Windows 2000+上运行。我在windo 2000和Windows server 2003上需要它。为什么不在Win32_进程中使用ExecQuerySELECT*,其中Handle='+pid+'而不是InstancesOf+if?@Helen,你可以这样做,但你仍然需要枚举它们。这是一个更好的方法,我将用我的代码来交换它。再想一想,它甚至可以更简单——只需获取Win32_进程。Handle='+pid+',而不需要枚举。这是因为句柄是唯一标识Win32_进程对象的键属性。对不起,我可能不清楚。如果在一行中写入函数体,则函数体可以是GetObjectwinmgmts:.GetWin32_Process.Handle='+pid+'。Terminate,如果找到具有指定ID的进程,我可以确认此代码在Windows XP上工作;否则将引发一个异常,该异常可以通过try…catch捕获。事实上,它应该可以在Windows 2000+上运行。