AutoItX 1.4/2.63实现sendkeys和许多强大功能的COM组件(作者: Jonathan Bennett)

作者:Jonathan Bennett 主页(英文): http://www.hiddensoft.com/AutoIt/ 
说明: 陶清 ( [email protected] )
本地下载:AutoItx是免费组件! cool!
1.4版本   http://www.pdriver.com/pb02/10/autoit14.zip (size: 62kb)
2.63版本  http://www.pdriver.com/pb02/10/AutoIt263.exe (size: 612kb)

  VB 3.0就已经提供了一个很特别很有用的函数Sendkeys,能模拟键盘的操作,能以极为简单的方式实现许多演示或自动化工作。可惜PB中一直不能实现(即使用API实现在起来非常复杂,功能也不AutoITx内核好并且调用方便)

  本系统是老外写的一个com组件,原理是根据从windows98开始windows自带提供了Microsoft's scripting engines来包装的调用。

  Microsoft's scripting engines类似于DOS时代的.bat处理文件,提供了许多方法(以com对象的方式)来方便用户调用windows的许多功能。

  如果你在电脑中搜索 *.vbs文件(一般都在windows目录下)会找到一些例程,仔细阅读这些例题你将会发现非常有用。包括了有控制excel,网络共享名的联接方式。

 本AutoItX提供了许多强大的功能,如下,其中第1,2点是我认为最有用的功能。
(cool!)1.支持sendkeys ,除ctrl+alt+del不允许外,其余的任何键你都可以模拟发送。包括组合键。还有特殊按键.
例如最常见的组合键, ctrl + a , 只需要使用sendkeys (
(cool!)2.重启,开机,注册销等操作(2.63版本支持windows98/me/nt/2000),如你使用nt 4.0,强烈推荐要升级到sp6
3.支持窗口控制函数,最小化,隐藏,恢复,等待某窗口出现(如某messagebox),将指定的窗口放到最前面
4.sleep命令(pb中有)
5.ini的读写(pb中有)
6.对windows的剪贴板的copy, paste操作
7.模拟mouse的移动,点击,拖拽。

调用示范(test.hta代码)
如果你下载的是1.4版本,先使用regsvr32 AutoItX.dll的方式注册

<script language="VBScript">
Sub RunProgram
Dim oShell
Dim oAutoIt
Set oShell = CreateObject("WScript.Shell")
Set oAutoIt = CreateObject("AutoItX.Control")
oShell.Run "C:\Progra~1\swglxt\SWGLXT.exe", 1, FALSE
oAutoIt.WinWaitActive "登陆", ""
'oAutoIt.Send "myname"
'oAutoIt.Send "{TAB}"
'oAutoIt.Send "mypassword"
'oAutoIt.Send "{ENTER 2}"

End Sub
</script>
<input type="button" value="test" onclick="RunProgram">

下面的命令是在屏幕x=50, y=200的位置模拟点击mouse左键
myoleobject.LeftClick( 50, 200)

下面的命令是模拟按下组合键ctrl + v
myoleobject.send("{CTRLDOWN}v{CTRLUP}")

关于具体的键盘代码对应表可见其帮助文件. 1.4版本的帮助文件名是 AutoItX.chm

  注意截止到写本文的时候最新版本是 2.63, 因为我用1.4版本测试后已经完全满足了sendkeys功能,如果你需要在xp或2000下调用AutoItX的关机等功能,则建议你下载2.63版本。
  2.63已经支持 windows 2000/xp,同时提供activex或dll方式的调用,还提供了书写script并编译成exe独自执行的功能(即你可以不用第三方的软件,如pb,vb,delphi来写)
  2.63下载后可以直接安装。
  1.4版本的提供的.vbs例程我已经修改了,可以用于简体windows下面,而2.63版本因为其针对英文windows所写的sample,所以有些地方你需要修改,例如其中一个例程
C:\Program Files\AutoIt\Examples\_Run_Me_First.aut
其中有一个等待写字板出现的函数调用如下:
WinWait, Untitled - Notepad
你需要将它改为
WinWait, 无标题 - 记事本
才能正常运行。否则winwait会一直等到有一个窗口标题为Untitled - Notepad的窗口出现才继续执行script

你可能感兴趣的:(AutoItX 1.4/2.63实现sendkeys和许多强大功能的COM组件(作者: Jonathan Bennett))