bianbian coding life

便便代码人生: 关注技术, 翻译文档, 偶尔动动手

[原] 用AutoIt3控制其他程序控件的一些经验

Posted by bianbian on 2007-05-12 18:08

本文Tags: ,

这些经验是我实践中经过N次测试发现的,希望对大家有帮助。
控制ComboBox:
如果要更改选择,仅仅”SetCurrentSelection”是不够的。虽然UI上能看到选择项进行了变化,但并不会在功能上生效。正确的做法是先下拉,再选择,然后点击,最后隐藏下拉,即:

  1. ;对combobox的控制,必须: ShowDropDown, Select, Click, HideDropDown
  2. ControlCommand($WIN_TITLE, $WIN_TEXT, $Combo, "ShowDropDown")
  3. ControlCommand($WIN_TITLE, $WIN_TEXT, $Combo, "SetCurrentSelection", $idx)
  4. ControlClick($WIN_TITLE, $WIN_TEXT, $Combo)
  5. ControlCommand($WIN_TITLE, $WIN_TEXT, $Combo, "HideDropDown")

控制鼠标点击:
除了ControlClick方法处理鼠标点击外,有时候必须要用到SendMessage,因为鼠标点击事件其实是有坐标位置关系的,用简单的ControlClick并不能完成类似要点击某块区域内某个点的功能。

  1. ;;;;;;; http://bianbian.sunshow.net ;;;;;;
  2. #include <misc.au3>
  3.  
  4. $handle = ControlGetHandle(...)
  5. $WM_LBUTTONDOWN = 0x0201
  6. $WM_LBUTTONUP = 0x0202
  7. _SendMessage($handle, $WM_LBUTTONDOWN, 0, MyPoint(8, 51))
  8. _SendMessage($handle, $WM_LBUTTONUP, 0, MyPoint(8, 51))
  9.  
  10. ;得到鼠标x,y转换后的数值:高位表示y,低位表示x
  11. Func MyPoint($x, $y)
  12.     Return ($x + BitShift($y, -8))
  13. EndFunc
标签: ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

(required)