tan133 发表于 2012-5-14 19:16:13

一个简单的网页弹窗,如何实现后台模拟按键点击?

本帖最后由 tan133 于 2012-5-15 01:12 编辑



如图所示的IE网页弹窗,如何点击?

失败$n=ControlSend("文件下载 - 安全警告", "", "button2", "{SPACE}")
msgbox (000,0,$n)失败$n=ControlClick("文件下载 - 安全警告", "", "button2")
msgbox (000,0,$n)失败#Include <WinAPI.au3>

$hwnd=0x00050722

$WM_LBUTTONDOWN=0x201
$WM_LBUTTOUP=0x202

_WinAPI_PostMessage($hwnd,$WM_LBUTTONDOWN,0,0)
_WinAPI_PostMessage($hwnd,$WM_LBUTTOUP   ,0,0)
失败#Include <WinAPI.au3>
$hwnd=0x00050722
$BM_CLICK=0xF5
_WinAPI_PostMessage($hwnd,$BM_CLICK,0,0)
失败#Include <WinAPI.au3>
$hwnd=0x00050722

Const $WM_KEYDOWN = 0x100
Const $WM_KEYUP = 0x101
Const $WM_CHAR = 0x106

_WinAPI_PostMessage($hwnd,$WM_KEYDOWN, "{Space}", 0)
_WinAPI_PostMessage($hwnd,$WM_CHAR, "{Space}", 0)
_WinAPI_PostMessage($hwnd,$WM_KEYUP, "{Space}", 0)

黑色袜子 发表于 2012-5-14 19:42:03

激活窗口,sendalt+r=运行 alt+s=保存 alt+f4关闭

zldfsz 发表于 2012-5-14 20:05:32

最好有个用AutoIt v3 窗口信息工具探测相关按钮后的截图

ooxxgod 发表于 2012-5-14 21:12:11

2楼方法 可以

xms77 发表于 2012-5-14 21:33:58

回复 1# tan133
试过ControlSend("文件下载","","button3","{SPACE}"失败,这个窗口标题文字不全吧?

tan133 发表于 2012-5-15 00:15:25

本帖最后由 tan133 于 2012-5-15 01:57 编辑

回复 3# zldfsz

已经更新我全部测试代码

tan133 发表于 2012-5-15 00:36:42

本帖最后由 tan133 于 2012-5-15 01:22 编辑

回复 4# ooxxgod
回复 2# 黑色袜子

谢谢,我是想可以后台操作不是更好?你就当我是在这里作技术探讨吧

tan133 发表于 2012-5-15 00:43:39

本帖最后由 tan133 于 2012-5-15 00:46 编辑

回复 5# xms77
我没有标题漏文字,只是当时测试的时候,和发的图不是一个窗口,没有那个文件,现在更正后是同一个窗口做的测试

黑色袜子 发表于 2012-5-15 01:00:04

回复 6# tan133     $hWnd=WinWait('文件下载 - 安全警告')
While $hWnd=0
        $hWnd=WinWait('文件下载 - 安全警告')
        Sleep(1)
WEnd
ControlSend($hWnd, "", "Button3", "{Enter}")不谢,会用空格为什么就不会用回车呢?

tan133 发表于 2012-5-15 01:24:56

本帖最后由 tan133 于 2012-5-15 01:30 编辑

回复 9# 黑色袜子
没想到你也还在,谢谢你的耐心解答
你的代码我当然测试过,不过,点button3测试可以成功关掉窗口,
我当时也以为是成功的,换代码稍微换一下,以下代码的意思应该是点Button2吧?
结果,它还是直接关闭窗口,而不是弹出保存对话框ControlSend($hWnd, "", "Button2", "{Enter}")看了下,当时的控件焦点在button3上,是它还是Button3(取消)退出,还是因为发送了消息,导致错误所以窗口直接消失?
是他的问题还是我的问题?这到底有没有解呢?

黑色袜子 发表于 2012-5-15 11:17:07

回复黑色袜子
没想到你也还在,谢谢你的耐心解答
你的代码我当然测试过,不过,点button3测试可以成功 ...
tan133 发表于 2012-5-15 01:24 http://autoitx.com/images/common/back.gifControlFocus ( $hWnd, "", 'Button2' )
ControlSend($hWnd, "", "Button2", "{Enter}")试试

tan133 发表于 2012-5-15 12:21:46

本帖最后由 tan133 于 2012-5-15 12:26 编辑

回复 11# 黑色袜子 while true
    ;这次可以理论上,应该可以了吧?但是,还是窗口直接关闭,而不是打开下载窗口
    ControlFocus ("文件下载", "保存(&S)", 'Button2' )
    ControlSend("文件下载", "保存(&S)", "Button2", "{Enter}")
wend    多说一句,这个测试环境是XPSP3+IE6+AUTO3.3.7.15第一次汉化版
页: [1]
查看完整版本: 一个简单的网页弹窗,如何实现后台模拟按键点击?