Board logo

标题: [问题求助] VBS脚本ExecMethod_方法的疑问[已解决] [打印本页]

作者: czjt1234    时间: 2013-3-5 10:52     标题: 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方法关闭进程
作者: Spring    时间: 2013-3-6 15:15

各种对象的方法和属性都不一样,你这样凭感觉去凭空捏造是不行的,查资料多看例子就知道了。
  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
复制代码

作者: czjt1234    时间: 2013-3-6 23:39

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

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

这Terminate方法明明没有参数
作者: Demon    时间: 2013-3-6 23:57

本帖最后由 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楼的话,你这样凭感觉去凭空捏造是不行的。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2