找回密码
 加入
搜索
查看: 7449|回复: 7

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

  [复制链接]
发表于 2014-4-1 22:01:39 | 显示全部楼层 |阅读模式
本帖最后由 m765555 于 2014-4-2 21:47 编辑

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

While 1
$var = WinList()

For $i = 1 To $var[0][0]
        ; 仅显示带标题的可见窗口
        If $var[$i][0] <> "" And IsVisible($var[$i][1]) Then
                If StringInStr($var[$i][0], "桔子浏览器") Then
                        ;MsgBox(0, 0, $var[$i][0])
                                                WinClose($var[$i][1]) 
                                                
                                                ;以下几种方法都无法关闭窗口标题中包含有'桔子浏览器'的程序窗口>>>>>>>>>
                                                ;Local $myhand=WinGetHandle($var[$i][0])
                                                ;MsgBox(0, 0, $myhand)     句柄正确啊
                                                ;WinActivate($var[$i][1])  可以激活窗口啊
                        ;WinClose($myhand,"")      1.用句柄也无法关闭窗口
                                                ;WinClose($var[$i][1])     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就可以运行安装界面了.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2014-4-1 22:47:27 | 显示全部楼层
试下
While 1
        $var = WinList()
        For $i = 1 To $var[0][0]
                If $var[$i][0] <> '' And BitAND(WinGetState($var[$i][1]), 2) Then
                        If StringInStr($var[$i][0], '桔子浏览器') Then ProcessClose(WinGetProcess($var[$i][1]))
                EndIf
        Next
WEnd
 楼主| 发表于 2014-4-2 21:38:34 | 显示全部楼层
回复 2# afan

呵呵,不错,代码高效,THANK YOU !
发表于 2014-4-2 21:57:49 | 显示全部楼层
回复 3# m765555


    实际应用需在循环中插入一行如 Sleep(100),否则会导致CPU占用超高。
发表于 2014-4-27 19:32:19 | 显示全部楼层
回复 2# afan
斑竹,你这个循环用了后面怎么退出程序:
Run('2345_k123456788888_desk.exe')
While 1
        $var = WinList()
        For $i = 1 To $var[0][0]
                If $var[$i][0] <> '' And BitAND(WinGetState($var[$i][1]), 2) Then
                        If StringInStr($var[$i][0], '2345网址导航桌面版') Then ProcessClose(WinGetProcess($var[$i][1]))
                EndIf
        Next
WEnd
发表于 2014-4-27 21:34:50 | 显示全部楼层
回复 5# bossfly


    没添加手动退出代码,可以直接点击托盘图标退出
发表于 2015-1-4 17:14:16 | 显示全部楼层
都是 高手呀!
发表于 2015-5-4 14:36:56 | 显示全部楼层
学习了,不错啊
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-27 13:34 , Processed in 0.079098 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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