找回密码
 加入
搜索
楼主: lxwlxwayy

[AU3基础] 如何根据控件句柄实现控件单击

 火.. [复制链接]
 楼主| 发表于 2010-12-13 16:52:49 | 显示全部楼层
记事本里有光标
 楼主| 发表于 2010-12-13 17:33:38 | 显示全部楼层
可是在打开记事本就是有光标的
 楼主| 发表于 2010-12-13 18:10:43 | 显示全部楼层
 楼主| 发表于 2010-12-13 18:13:55 | 显示全部楼层
图片上面怎么会有雨林木枫的网址啊?
 楼主| 发表于 2010-12-13 19:03:06 | 显示全部楼层
代码还是不行,请兄弟姐妹帮帮
发表于 2010-12-19 16:41:51 | 显示全部楼层
#Include <GuiButton.au3>
_GUICtrlButton_Click($hWnd)
发表于 2010-12-19 21:08:51 | 显示全部楼层
这个需要研究看看
发表于 2010-12-19 21:57:43 | 显示全部楼层
本帖最后由 _ddqs. 于 2010-12-19 22:48 编辑

LZ应该先贴问题代码
为何一定要用句柄去完成点击
好给大家学习下...
-------------------------------------------------------------------------------------------------------
都知道是要点击某控件了,应该知道其类名,怎么反要去取句柄再去进行控制!会不会是多此一举?
-------------------------------------------------------------------------------------------------------
程序内控件单击(控件先付值于变量)
#include "GUIConstantsEx.au3"

$GUIMain=GUICreate( "Test", 800, 600 )
$GUIEdit=GUICtrlCreateEdit( "Test:" & @CRLF & @CRLF & @CRLF & @CRLF & @CRLF,  10, 20, 780, 600)
GUISetState ()


Sleep(2000) ;待2秒后看下
        
ControlClick($GUIMain, "Test", $GUIEdit, "", 1 ) 


While 1

        Sleep(3000)
        
WEnd
发表于 2010-12-20 05:00:03 | 显示全部楼层
本帖最后由 _ddqs. 于 2010-12-20 05:22 编辑
#Include <WinAPI.au3>


$win = WinGetTitle("") ;获取调试窗口

Run("Notepad.EXE") ;启动记事本

WinActivate($win,"") ;返回调试窗口

Sleep(500)

$HWND = ControlGetHandle("[CLASS:Notepad]", "", "Edit1") ;获取"记事本"控件句柄

ConsoleWrite("句柄: "& $HWND &@LF)

ControlSend("[CLASS:Notepad]", "", "[CLASS:Edit; INSTANCE:1]","help"&"^a",0) ;发送测试文本并全选(如果以下不会点击,这里的文本是选定状态)

Sleep(1000)

;---------------------------------------------------------------
_WinAPI_PostMessage($HWND, "0x0201",0 ,0) ;按下鼠标左键
_WinAPI_PostMessage($HWND, "0x0202",0 ,0) ;释放鼠标左键
;---------------------------------------------------------------

Sleep(500)

WinActivate("[CLASS:Notepad]", "") ;看下"记事本"操作结果
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;结果
;有启用 :_WinAPI_PostMessage() 没有选定状态
;不启用:_WinAPI_PostMessage() 2行都注释掉……存在选定状态
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
发表于 2010-12-27 23:06:58 | 显示全部楼层
作个记号内容
发表于 2010-12-28 00:27:16 | 显示全部楼层
au3任何参数为"窗口标题"的函数 此参数都可以用窗口句柄传入
发表于 2010-12-28 07:53:43 | 显示全部楼层
_SendMessage(控件句柄,0x0201, 0)
_SendMessage(控件句柄,0x0202, 0)
发表于 2010-12-28 12:43:32 | 显示全部楼层
controlclick
发表于 2011-1-20 17:32:53 | 显示全部楼层
看样子你这是走了不少弯路啊.
其实直接在ControlClick使用 指针类型的变量 就可以直接使用控件句柄点击了.

下面的代码是打开计算器并点击数字9
$sTitle = "计算器"
$sText  = "Backspace"
Run("calc.exe")
WinWait($sTitle, $sText)
$hControl = ControlClick($sTitle, $sText, "Button13")
ControlClick($sTitle, $sText, $hControl, "left")
发表于 2011-1-20 19:09:52 | 显示全部楼层
楼上的正解哦啊
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-23 10:07 , Processed in 0.067550 second(s), 13 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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