lijinshui 发表于 2009-7-8 15:16:13

获取进程名称

有没有一个简单的方法可以在Task列表中获取进程名称,比如说 NOTEPAD
等等

hsjzfling 发表于 2009-7-8 16:06:31

你希望通过什么来确定你想要的进程名?还是需要列举出运行中所有的进程名称?VBS一般可以通过WMI来实现。

lijinshui 发表于 2009-7-8 16:31:40

对不起,可能是我没有描述清楚
现在有一个方法就是通过列举出运行中所有的进程名,然后一个一个判断,如果一致的话,就将其最大化,没有的话就启动一个新的.
我不满意现在的做法,想知道有没有直接可以判断一个已知的可执行文件名是否在Task Manager里面

dreamever 发表于 2009-7-8 16:33:26

tasklist命令,可以获取当前系统所有正在运行的进程名称列表

lijinshui 发表于 2009-7-8 16:52:01

最好给个简单的小列子,或者再稍微详细一点就好了

shanxi 发表于 2009-7-8 16:59:22

借用WMI

http://www.itestware.com/ctest/index.php?option=com_content&view=article&id=166:qtpwmi&catid=35:testing_is_believing

http://tester2test.blog.51cto.com/461899/158085

fei.ge 发表于 2009-7-8 17:37:21

学习shanxi发的帖子。

通过WMI获取进程的名字:
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
       
Set colProcess = objWMIService.ExecQuery ("Select * from Win32_Process")
For Each objProcessin colProcess
        print objProcess.Caption
Next

lijinshui 发表于 2009-7-8 17:44:20

fei.ge

Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
这句话过不去 , 版主fei.ge 你试过吗 ?

fei.ge 发表于 2009-7-8 23:29:48

回复 8# 的帖子

是的,试过了才发的。

你过不去,提示什么信息

lijinshui 发表于 2009-7-9 08:30:04

好象是报告了语法错误
Set objWMIService = GetObject("winmgmts: {impersonationLevel=impersonate}!\\ .\root\cimv2")

fei.ge 发表于 2009-7-9 09:48:16

原帖由 lijinshui 于 2009-7-9 08:30 发表 http://bbs.51testing.com/images/common/back.gif
好象是报告了语法错误
Set objWMIService = GetObject("winmgmts: {impersonationLevel=impersonate}!\\ .\root\cimv2")

仔细点,冒号跟大括号中间多了一个空格。

Set objWMIService = GetObject("winmgmts: {impersonationLevel=impersonate}!\\ .\root\cimv2")
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")

liujinkui 发表于 2009-7-9 10:31:30

我这没有问题。感谢。
页: [1]
查看完整版本: 获取进程名称