AutoIt教程:10. 模拟键盘鼠标操作

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窗口信息的,调用出来把玩一下:

liyi 2010/05/07 at 11:02
yyasong 2010/05/07 at 14:58
李笑来 2010/05/07 at 15:21
pc 2010/05/07 at 23:41

You can use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

郑重声明:资讯 【AutoIt教程:10. 模拟键盘鼠标操作】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——