qq1244521 发表于 2013-7-18 14:43:26

[已解决]排除系统进程将其关闭

本帖最后由 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系统进程 运行后没有反映 帮忙看看是哪块有问题

veket_linux 发表于 2013-7-18 15:23:32

缺一句 $Process=0

什么位置 自己思考

user3000 发表于 2013-7-18 21:11:07

回复 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

qq1244521 发表于 2013-7-21 15:46:20

2# 3#谢谢了 我去研究下

qq1244521 发表于 2013-7-24 20:32:59

3楼 正解 代码比我的简洁多了

h20040606 发表于 2013-7-24 21:00:58

谢谢3楼的代码,非常不错
页: [1]
查看完整版本: [已解决]排除系统进程将其关闭