AutoIt的独特之处之一在于它可以非常方便地模拟Windows上的键盘鼠标操作,进而“自动”、“批量”地完成一些复杂而又重复的操作。
想象一下:
你有一个词表,你想把它的所有单词在Collins COUBILD中的释义文本拷贝出来。
那么,你原本只能这样:
打开词表文本文件;
新建一个文本文档(如果想要保留格式的话,就要新建一个rtf文件──用“写字板”程序,而非“记事本”)
打开Collins词典()从词表文件中Control+C拷贝出一个词
切换到Collins词典,将刚刚拷贝的词粘贴到输入框中,而后按回车键
再从菜单中选择Edit,再选择Copy Entry
切换到写字板程序,按Control+V粘贴
…
周而复始,直至所有词汇全部处理完毕……
也许过去你就是这么做的。可是,现在你可以像这段录像所演示的那样:(或者你可以在这个链接上点击鼠标右键,选择“另存为……”将其下载到本地查看。)
程序的代码很简单(;另,你的电脑上应该已经安装好Collins COBUILD Dictionary On CDROM;还有,在执行这个程序之前,你得先打开一个写字板程序、打开Collins词典……):
$file = FileOpen("WordList.txt") While 1 $line = FileReadLine($file) If @error = -1 Then ExitLoop CopyEntryFromCollinsToWordPad($line, "Document - WordPad") WEnd Func CopyEntryFromCollinsToWordPad($Entry, $WordPadTitle = "文档 - 写字板", $CollinsTitle = "Collins COBUILD - Lexicon") ControlSend($CollinsTitle, "", "Edit2", $Entry & "{Enter}", 0) WinWait($CollinsTitle,"") If Not WinActive($CollinsTitle,"") Then WinActivate($CollinsTitle,"") WinWaitActive($CollinsTitle,"") Send("{ALTDOWN}{ALTUP}ee") WinWait($WordPadTitle,"") If Not WinActive($WordPadTitle,"") Then WinActivate($WordPadTitle,"") WinWaitActive($WordPadTitle,"") Send("{CTRLDOWN}v{CTRLUP}") Send("{Enter}") Send("================================") Send("{Enter}") EndFunc ; Finished! MsgBox(0, "AutoIt Message", "Finished!")
试用过后,请打开AutoIt帮助文件,细读这段代码中所用到的所有函数帮助文档。
另,AutoIt有一个“AutoIt Windows Info”程序(在开始菜单中可以找到),是用来获得Windows窗口信息的,调用出来把玩一下: