m765555 发表于 2014-4-1 22:01:39

无法关闭某窗口标题包含有"桔子浏览器"的程序窗口[已解决]

本帖最后由 m765555 于 2014-4-2 21:47 编辑

请教各位兄弟一下,其它就是一个桔子浏览器的软件,本人想通过此软件的方法来达到监视窗口标题如果含有某字眼的垃圾程序时,自动关闭不需要的程序,以达到阻止安装的目的.但这个桔子浏览器我怎么弄也没办法关闭它,请看代码有什么问题.#include <WinAPI.au3>

While 1
$var = WinList()

For $i = 1 To $var
      ; 仅显示带标题的可见窗口
      If $var[$i] <> "" And IsVisible($var[$i]) Then
                If StringInStr($var[$i], "桔子浏览器") Then
                        ;MsgBox(0, 0, $var[$i])
                                                WinClose($var[$i])
                                               
                                                ;以下几种方法都无法关闭窗口标题中包含有'桔子浏览器'的程序窗口>>>>>>>>>
                                                ;Local $myhand=WinGetHandle($var[$i])
                                                ;MsgBox(0, 0, $myhand)   句柄正确啊
                                                ;WinActivate($var[$i])可以激活窗口啊
                        ;WinClose($myhand,"")      1.用句柄也无法关闭窗口
                                                ;WinClose($var[$i])   2.此方法也无法关闭窗口
                                                ;WinKill($myhand)          3.此方法也无法关闭窗口
                                                ;以上几种方法都无法关闭窗口标题中包含有'桔子浏览器'的程序窗口>>>>>>>>>
                EndIf
                EndIf

Next
WEnd
Func IsVisible($handle)
      If BitAND(WinGetState($handle), 2) Then
                Return 1
      Else
                Return 0
      EndIf
EndFunc   ;==>IsVisible 这里是此软件的附件,为了方便上传,请下载后,把后缀由pdf改为exe就可以运行安装界面了.

afan 发表于 2014-4-1 22:47:27

试下While 1
        $var = WinList()
        For $i = 1 To $var
                If $var[$i] <> '' And BitAND(WinGetState($var[$i]), 2) Then
                        If StringInStr($var[$i], '桔子浏览器') Then ProcessClose(WinGetProcess($var[$i]))
                EndIf
        Next
WEnd

m765555 发表于 2014-4-2 21:38:34

回复 2# afan

呵呵,不错,代码高效,THANK YOU !

afan 发表于 2014-4-2 21:57:49

回复 3# m765555


    实际应用需在循环中插入一行如 Sleep(100),否则会导致CPU占用超高。

bossfly 发表于 2014-4-27 19:32:19

回复 2# afan
斑竹,你这个循环用了后面怎么退出程序:
Run('2345_k123456788888_desk.exe')
While 1
      $var = WinList()
      For $i = 1 To $var
                If $var[$i] <> '' And BitAND(WinGetState($var[$i]), 2) Then
                        If StringInStr($var[$i], '2345网址导航桌面版') Then ProcessClose(WinGetProcess($var[$i]))
                EndIf
      Next
WEnd

afan 发表于 2014-4-27 21:34:50

回复 5# bossfly


    没添加手动退出代码,可以直接点击托盘图标退出

htmgyv 发表于 2015-1-4 17:14:16

都是 高手呀!

nqawen 发表于 2015-5-4 14:36:56

学习了,不错啊
页: [1]
查看完整版本: 无法关闭某窗口标题包含有"桔子浏览器"的程序窗口[已解决]