[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] VBS脚本ExecMethod_方法的疑问[已解决]

本帖最后由 czjt1234 于 2013-3-6 23:34 编辑
  1. Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
  2. Set objSWbemServices = objSWbemLocator.ConnectServer()
  3. Set objSWbemObject = objSWbemServices.Get("Win32_Service='Alerter'")
  4. objSWbemObject.ExecMethod_("StartService")
复制代码
这个能执行StartService方法启动指定服务
  1. Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
  2. Set objSWbemServices = objSWbemLocator.ConnectServer()
  3. Set objSWbemObject = objSWbemServices.Get("Win32_Process='1044'")
  4. objSWbemObject.ExecMethod_("Terminate")
复制代码
假如新开的cmd窗口的PID=1044
这个为什么不能执行Terminate方法关闭进程
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

QQ 20147578

各种对象的方法和属性都不一样,你这样凭感觉去凭空捏造是不行的,查资料多看例子就知道了。
  1. Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
  2. Set objSWbemServices = objSWbemLocator.ConnectServer()
  3. Set objSWbemObject = objSWbemServices.Get("Win32_Process.Handle='1044'")
  4. Set objInParams = objSWbemObject.Methods_("Terminate").InParameters.SpawnInstance_()
  5. Set objOutParams = objSWbemObject.ExecMethod_("Terminate", objInParams)
复制代码
还有,这种通用方法一般都很难用,如果要结束进程用这个就可以了
  1. GetObject("winmgmts:Win32_Process.Handle=1044").Terminate
复制代码
1

评分人数

TOP

非常感谢。我是在研究 ExecMethod_ 方法的使用

原来加个空的objInParams对象就行了

这Terminate方法明明没有参数

QQ 20147578

TOP

本帖最后由 Demon 于 2013-3-7 00:04 编辑
非常感谢。我是在研究 ExecMethod_ 方法的使用

原来加个空的objInParams对象就行了

这Terminate方法明明没有参数
czjt1234 发表于 2013-3-6 23:39



http://msdn.microsoft.com/en-us/ ... 93907(v=vs.85).aspx

借用2楼的话,你这样凭感觉去凭空捏造是不行的。

TOP

返回列表