找回密码
 加入
搜索
查看: 1794|回复: 6

[AU3基础] 如何根据进程的句柄数多少来结束进程

[复制链接]
发表于 2017-2-28 09:18:44 | 显示全部楼层 |阅读模式
高手指点,例如我开了20个QQ,其中有几个已经卡机了,句柄数只有200多了,正常是1000,我就把这句柄数只有200多的qq进程给结束了,谢谢大神指点
发表于 2017-2-28 12:54:04 | 显示全部楼层
回复 1# cxq7668
$kill = "QQ.exe"
Dim $Processlist = ProcessList()
For $i = 1 To $Processlist[0][0]
        If StringInStr($kill, $Processlist[$i][0]) > 0 AND $Processlist[$i][1] < 200 Then ProcessClose($Processlist[$i][1])
Next
 楼主| 发表于 2017-2-28 13:29:43 | 显示全部楼层
回复 2# mars0916


    多谢大神,我试试去
 楼主| 发表于 2017-2-28 13:53:31 | 显示全部楼层
回复 2# mars0916


    大神这个 ProcessList()这个函数获取不到进程的句柄数啊,只有pid值啊
发表于 2017-2-28 16:02:35 | 显示全部楼层
回复 4# cxq7668
底下有個例子 你研究看看

不知道是不是你要的

https://www.autoitscript.com/wik ... _I_have_is_a_PID.3F
发表于 2017-2-28 16:12:27 | 显示全部楼层
回复 4# cxq7668
終於知道句柄數是啥了

轉貼的

請自行加判斷
$arProc = ProcessList("QQ.exe")

For $i = 1 to $arProc[0][0]
    $arStat = ProcessGetStats($arProc[$i][1], 0)
    If IsArray($arStat) Then
        ConsoleWrite("Process Name: " & $arProc[$i][0] & " - Handle: " & StringReplace(_ProcessGetHandle($arProc[$i][0]), @LF, " - ") & @CRLF)
    EndIf
Next

Func _ProcessGetHandle($ioProcName)
    If $ioProcName Then
        Local $sStatus = Run(@ComSpec & " /c WMIC PROCESS WHERE Name='" & $ioProcName & "' GET handlecount", @SystemDir, @SW_HIDE, 8)
        Local $sBuf
        While 1
            $sBuf &= StdoutRead($sStatus)
            If @Error then ExitLoop ; We have lift off, let's move on!
        WEnd
        $sBuf = StringStripCR($sBuf)
        $sBuf = StringRegExpReplace($sBuf, "HandleCount", "")
        $sBuf = StringStripWS($sBuf, 3)
        If StringInStr($sBuf, "No Instance(s) Available.") Then
            ; Just incase we enter a bad process name
            SetError(2)
            Return 0
        EndIf
        Return $sBuf
    Else
        SetError(1)
        Return 0
    EndIf
EndFunc
 楼主| 发表于 2017-2-28 20:31:58 | 显示全部楼层
回复 6# mars0916


    好的,我研究一下
谢谢
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-4-19 14:54 , Processed in 0.077843 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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