[已解决]排除系统进程将其关闭
本帖最后由 qq1244521 于 2013-7-24 20:33 编辑Dim $Process=0
Local $list = ProcessList()
For $i = 1 To $list
If $list[$i] =""Then ;对比进程是否一样
$Process=1
EndIf
If $list[$i] ="System"Then ;对比进程是否一样
$Process=1
EndIf
If $list[$i] ="smss.exe"Then ;对比进程是否一样
$Process=1
EndIf
If $list[$i] ="csrss.exe"Then ;对比进程是否一样
$Process=1
EndIf
If $list[$i] ="winlogon.exe"Then ;对比进程是否一样
$Process=1
EndIf
If $list[$i] ="services.exe"Then ;对比进程是否一样
$Process=1
EndIf
If $list[$i] ="lsass.exe"Then ;对比进程是否一样
$Process=1
EndIf
If $list[$i] ="svchost.exe"Then ;对比进程是否一样
$Process=1
EndIf
If $list[$i] ="explorer.exe"Then ;对比进程是否一样
$Process=1
EndIf
If $list[$i] ="internat.exe"Then ;对比进程是否一样
$Process=1
EndIf
If $Process=0Then
ProcessExists( $list[$i] ) ;结束进程
MsgBox(0, "", $list[$i])
$Process=0
EndIf
Next
我弄了个 关闭不是WINXP系统进程 运行后没有反映 帮忙看看是哪块有问题 缺一句 $Process=0
什么位置 自己思考 回复 1# qq1244521
你的代码应该把 $Process = 0放在循环里的首行.
但可以考虑另一种判断方法,让代码更简洁点, 我曾经这么试过的:Local $Pid_Sys = "|System|smss.exe|csrss.exe|" &_
"winlogon.exe|services.exe|lsass.exe|svchost.exe|explorer.exe|internat.exe|"
Local $list = ProcessList()
If @error Then
MsgBox(16, 'err', 'fail to get process list!')
Exit
Else
For $i = 1 To $list
If StringInStr($Pid_Sys, $list[$i] & '|') Then ContinueLoop
ProcessClose($list[$i]) ;结束进程
If @error Then
MsgBox(16, $list[$i], '关闭进程失败,错误码: ' & @error)
Else
MsgBox(64, $list[$i], '已成功关闭此进程.')
EndIf
Next
EndIf 2# 3#谢谢了 我去研究下 3楼 正解 代码比我的简洁多了 谢谢3楼的代码,非常不错
页:
[1]