ZZ : http://hi.baidu.com/iokey/blog/item/7135fdc36c601c57b319a833.html
第一讲,介绍一下基本的东西,
如何打开一个网页,太简单,加点要求,
1,打开百度,http://www.baidu.com , 在百度搜索里面输入”与 autoit3 亲密接触”,偶的blog;
2,窗口我要”800*600”,隐藏工具栏,而且大小不可更改;
3,偏执一点,不喜欢”百度一下,你就知道”,那我们改一下”我的百度,我做主”
4,状态栏里面显示信息”欢迎访问 与 autoit3 亲密接触 hi.baidu.com/iokey”
5,我不想看到整个过程,我只想看到结果,OK没问题.
首先我们打开一个浏览器,输入百度的网址,这里要用到_IECreate,这个函数的返回值是指向这个ie窗口的目标变量,参数” 0,1,1,0”,分别的意思是:不找已经存在的www.baidu.com的ie窗口,显示ie,等待网页载入完全然后返回,激活此ie窗口
#include <IE.au3>
$oIE = _IECreate ("www.baidu.com",0,1,1,0)
接下来我们对这个窗口进行一番设置,这里要用到_IEPropertySet,这个函数用来设置浏览器或者DOM元素的
_IEPropertySet ($oIE, "toolbar", 0) ;隐藏toolbar
_IEPropertySet ($oIE, "width", 800) ;设置ie宽800像素
_IEPropertySet ($oIE, "height", 600) ;设置ie高600像素
_IEPropertySet ($oIE, "resizable", 0) ;设置ie不可以调整大小
_IEPropertySet ($oIE, "title","我打开的百度,我做主") ;设置ie标题,取代原title
_IEPropertySet ($oIE, "statustext","欢迎访问 与 autoit3 亲密接触 hi.baidu.com/iokey") ;设置状态栏
设置完毕,我想在搜索框里面写入搜索内容,这里说明一点,当窗口显示的时候我们可以用send()/sendx()来发送,但是这样会遇到一个常见的问题,可能窗口不是激活状态,因为ie窗口里面的内容不是标准的空间,所以GUICtrlSetData失效了.不过对ie.au3有更好的方法,下面来看:
$oForm = _IEFormGetObjByName ($oIE, "f")
$oQuery1 = _IEFormElementGetObjByName ($oForm, "wd")
_IEFormElementSetValue ($oQuery1, "与 autoit3 亲密接触")
上面三句,分别是找到name为”f”的表单,在这个表单里面找到name为”wd”的表单元素,这里的wd代表的就是搜索框,最后将wd的内容设置为"与 autoit3 亲密接触"
这里还有朋友要问,能不能自动点击搜索按钮呢?当然可以的,而且我们还不是通过简单的send()回车键来实现,
_IEFormSubmit ($oForm,0)
这句就是提交$oForm表单, 0代表不等待网页载入完成立即返回.
这样还不够,那我们再玩点花样,目标是先让ie隐藏,设置啊,输入搜索串都是在隐藏状态下完成,显示出来的时候什么都完成了,首先我们让ie打开的时候就是隐藏状态,
$oIE = _IECreate ("www.baidu.com",0,0,1,0)
然后在适当的时候,我们让她显示出来,这里我们用到_IEAction(),这个函数模拟了我们对浏览器的大部分操作,如刷新,后退,退出等等,这里是让ie显示的,当然也有隐藏的功能.
_IEAction ($oIE, "visible")
总结一下,这里我们用到了几个函数;_IEPropertySet;_IECreate;_IEAction 这些都是和浏览器属性相关的,有着众多的参数可以来利用,基本上可以满足对浏览器的操作.这里大家可能要提出一些疑问,在输入百度搜索内容的时候提到的”f””wd”,是从哪里来的?
这个就留在下一讲,将详细的讲述一下如何填写表单.
本次的完全代码:
$oIE = _IECreate ("www.baidu.com",0,0,1,0);打开一个ie,输入百度网址
_IEPropertySet ($oIE, "toolbar", 0)
_IEPropertySet ($oIE, "width", 800)
_IEPropertySet ($oIE, "height", 600)
_IEPropertySet ($oIE, "resizable", 0)
_IEPropertySet ($oIE, "title","我打开的百度,我做 主")
_IEPropertySet ($oIE, "statustext","欢迎访问 与 autoit3 亲密接触 hi.baidu.com/iokey")
$oForm = _IEFormGetObjByName ($oIE, "f")
$oQuery1 = _IEFormElementGetObjByName ($oForm, "wd")
_IEFormElementSetValue ($oQuery1, "与 autoit3 亲密接触")
_IEFormSubmit ($oForm,1)
_IEAction ($oIE, "visible")
Sleep(5000)
MsgBox(0,"提醒","确定退出IE")
_IEAction ($oIE, "quit")
这几天有朋友在群里提网页登录的问题,之前自己也写过自动发帖的软件,软件已经基本没问题了,但是这两天看了一下ie.au3,发觉其实ie.au3对网页的操作功能相当强大,强大到自己觉得发帖软件需要再一次更新,同时也发觉需要和广大的朋友介绍一下,因为时间有限,争取周末的时候写出一些,这里是个预告,希望看到的朋友多多支持。2007.6.23