查看: 1279|回复: 4
收起左侧

[已解决] 【已解决】vbs检测进程

[复制链接]
yyz219
头像被屏蔽
发表于 2022-9-16 11:21:51 | 显示全部楼层 |阅读模式
本帖最后由 yyz219 于 2022-9-17 10:02 编辑

复制代码
已经解决
'【有notepad2.exe进程--→运行"用Notepad3打开.vbs"】【无notepad2.exe进程--→运行"用Notepad2打开.vbs"】
ProcExist = "0"
Set objWMIProcess = GetObject("winmgmts:\\.\root\cimv2").ExecQuery("Select * From Win32_Process")
For Each objProcess In objWMIProcess
If objProcess.Name = "Notepad2.exe" Then  '【左边是需要检测的进程】
ProcExist = "1"
'【notepad2.exe进程存在】【用notepad3.exe打开文本】
CreateObject("WScript.Shell").Run "用Notepad3打开.vbs",0
WScript.Quit '【退出】
End If
Next
If ProcExist = "0" Then
'【notepad2.exe进程不存在】【用Notepad2打开打开文本】
CreateObject("WScript.Shell").Run "用Notepad2打开.vbs",0
WScript.Quit '【退出】
End If

*******************************************************************************
原来的问题:
00.vbs:

If IsProcess("qq.exe") =True Then

MessageBox"发现进程"

Else

MessageBox"没有发现进程"

End If

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
nmyh
发表于 2022-9-16 16:42:20 | 显示全部楼层
本帖最后由 nmyh 于 2022-9-16 17:13 编辑

网上找到了这个:



代码如下:
  1. '参考:https://gist.github.com/tautomer/1644ceff1a42cb57f66faba39067c63e


  2. Function IsProcessRunning(strProcess)
  3.     Dim Process, strObject
  4.     IsProcessRunning = False
  5.     strObject = "winmgmts://."
  6.     For Each Process in GetObject(strObject).InstancesOf("win32_process")
  7.     If UCase(Process.name) = UCase(strProcess) Then
  8.         IsProcessRunning = True
  9.         Exit Function
  10.     End If
  11.     Next
  12. End Function


  13. If IsProcessRunning("qq.exe") Then
  14.   wscript.echo "发现进程"
  15. Else
  16.   wscript.echo "没有发现进程"
  17. End If
复制代码



另外,应该是:
msgbox "发现进程"
而不是:
MessageBox"发现进程"

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x

评分

参与人数 1人气 +3 收起 理由
yyz219 + 3 版区有你更精彩: )

查看全部评分

yyz219
头像被屏蔽
 楼主| 发表于 2022-9-16 20:10:48 | 显示全部楼层
本帖最后由 yyz219 于 2022-9-16 20:22 编辑
nmyh 发表于 2022-9-16 16:42
网上找到了这个:

解决了问题,非常感谢

就是代码有一点长,不知道能不能再精简
nmyh
发表于 2022-9-16 21:27:31 | 显示全部楼层
本帖最后由 nmyh 于 2022-9-16 21:39 编辑
yyz219 发表于 2022-9-16 20:10
解决了问题,非常感谢

就是代码有一点长,不知道能不能再精简

已经很精简了,一个是函数,一个是调用函数。

另外,vbs应该不自带“IsProcess()”函数,因为下面的代码运行后也是同样的报错:
  1. If suibianshurude("qq.exe")=True Then
  2.   msgbox "发现进程"
  3. Else
  4.   msgbox "没有发现进程"
  5. End If
复制代码


IsProcess()应该是个作者自己取的函数名称,但是你的代码没有定义函数的代码内容,所以就没法运行。

评分

参与人数 1人气 +3 收起 理由
yyz219 + 3 感谢解答: )

查看全部评分

yyz219
头像被屏蔽
 楼主| 发表于 2022-9-16 21:42:32 | 显示全部楼层
nmyh 发表于 2022-9-16 21:27
已经很精简了,一个是函数,一个是调用函数。

另外,vbs应该不自带“IsProcess()”函数,因为下面的代 ...

好的,非常感谢,辛苦了
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-12-29 08:40 , Processed in 0.135055 second(s), 18 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表