gpt4 book ai didi

VBS进程判断代码

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 28 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章VBS进程判断代码由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

vbs核心代码 。

?
1
2
3
4
5
6
7
8
9
10
11
12
Option Explicit
Dim objWMIService,colProcessList,strComputer
strComputer = "."
Set objWMIService = GetObject( "winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2" )
Set colProcessList = objWMIService.ExecQuery( "Select * from Win32_Process Where Name = 'excel.exe'" )
If colProcessList.Count>0 Then
     MsgBox "检测到EXCEL程序运行中,程序退出!"
     WScript.Quit
End If
Set colProcessList = Nothing
Set objWMIService = Nothing
WScript.Quit

当然你可以判断 winrar.exe等等 。

下面附一个代码,原来中文命名的,我已经修改为英文命名并且正常运行了,因为时间问题,需要的朋友可以自行修改精简 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
'检测进程
proname = "qq.exe"
reName = IsProcess(proname)
If reName = True Then
   msgbox "发现进程"
ElseIf reName = False Then
   msgbox "没有发现进程"
End If
'检测进程 优化后的代码
If IsProcess( "qq.exe" ) = True Then
   msgbox "发现进程"
Else
   msgbox "没有发现进程"
End If
'检测进程组
proName_all = "qq.exe|notepad.exe"
reName = IsProcessEx(proName_all)
If reName = True Then
   msgbox "发现进程"
ElseIf reName = False Then
   msgbox "没有发现进程"
End If
'检测进程组 优化后的代码
If IsProcessEx( "qq.exe|notepad.exe" ) = True Then
   msgbox "发现进程"
Else
   msgbox "没有发现进程"
End If
'结束进程 前台执行
proname = "qq.exe"
   Call CloseProcess(proname, 1)
'结束进程 后台执行
proname = "qq.exe"
   Call CloseProcess(proname, 0)
   '结束进程组 前台执行
proName_all = "qq.exe|notepad.exe"
   Call CloseProcessEx(proName_all, 1)
'结束进程组 后台执行
proName_all = "qq.exe|notepad.exe"
   Call CloseProcessEx(proName_all, 0)
'实例应用 结束进程 前台执行 10秒超时
proname = "qq.exe"
For i=1 to 10
   Call CloseProcess(proname,1)
   Delay 1000
   reName = IsProcess(proname)
   If reName = False Then
     Exit For
   End If
Next
If reName= True Then
   msgbox "结束进程失败"
Else
   msgbox "结束进程成功"
End If
'实例应用 结束进程 前台执行 优化后的代码(直到型循环) 有些进程VBS检测不到 所以先关闭后检测
Do
   Call CloseProcess( "qq.exe" ,1)
   Delay 1000
Loop While IsProcess( "qq.exe" )= True
msgbox "结束进程成功"
'实例应用 结束进程组 后台执行 10秒超时
proName_all = "qq.exe|notepad.exe"
For j=1 to 10
   Call CloseProcessEx(proName_all,0)
   Delay 1000
   reName = IsProcessEx(proName_all)
   If reName = False Then
     Exit For
   End If
Next
If reName= True Then
   msgbox "结束进程失败"
Else
   msgbox "结束进程成功"
End If
'实例应用 结束进程组 后台执行 优化后的代码(直到型循环) 有些进程VBS检测不到 所以先关闭后检测
Do
   Call CloseProcessEx( "qq.exe|notepad.exe" ,0)
   Delay 1000
Loop While IsProcessEx( "qq.exe|notepad.exe" )= True
msgbox "结束进程成功"
'函数 子程序部分代码
'检测进程
Function IsProcess(ExeName)
   Dim WMI, Obj, Objs,i
   IsProcess = False
   Set WMI = GetObject( "WinMgmts:" )
   Set Objs = WMI.InstancesOf( "Win32_Process" )
   For Each Obj In Objs
     If InStr(UCase(ExeName),UCase(Obj.Description)) <> 0 Then
       IsProcess = True
       Exit For
     End If
   Next
   Set Objs = Nothing
   Set WMI = Nothing
End Function
'结束进程
Sub CloseProcess(ExeName,RunMode)
   dim ws
   Set ws = createobject( "Wscript.Shell" )
   ws.run "cmd.exe /C Taskkill /f /im " & ExeName,RunMode
   Set ws = Nothing
End Sub
'检测进程组
Function IsProcessEx(ExeName)
   Dim WMI, Obj, Objs,ProcessName,i
   IsProcessEx = False
   Set WMI = GetObject( "WinMgmts:" )
   Set Objs = WMI.InstancesOf( "Win32_Process" )
   ProcessName=Split(ExeName, "|" )
   For Each Obj In Objs
     For i=0 to UBound(ProcessName)
       If InStr(UCase(ProcessName(i)),UCase(Obj.Description)) <> 0 Then
         IsProcessEx = True
         Exit For
       End If
     Next
   Next
   Set Objs = Nothing
   Set WMI = Nothing
End Function
'结束进程组
Sub CloseProcessEx(ExeName,RunMode)
   dim ws,ProcessName,CmdCode,i
   ProcessName = Split(ExeName, "|" )
   For i=0 to UBound(ProcessName)
     CmdCode=CmdCode & " /im " & ProcessName(i)
   Next
   Set ws = createobject( "Wscript.Shell" )
   ws.run "cmd.exe /C Taskkill /f" & CmdCode,RunMode
   Set ws = Nothing
End Sub

好了这篇关于vbs进程判断的文章就介绍到这 。

最后此篇关于VBS进程判断代码的文章就讲到这里了,如果你想了解更多关于VBS进程判断代码的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com