AutoIt Windows的自动化脚本学习总结Word格式文档下载.docx
- 文档编号:16314667
- 上传时间:2022-11-22
- 格式:DOCX
- 页数:10
- 大小:256.55KB
AutoIt Windows的自动化脚本学习总结Word格式文档下载.docx
《AutoIt Windows的自动化脚本学习总结Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《AutoIt Windows的自动化脚本学习总结Word格式文档下载.docx(10页珍藏版)》请在冰豆网上搜索。
运行qq程序
Run("
C:
\ProgramFiles\Tencent\QQ\FinePlus.exe"
)
沉睡sleep(毫秒),这是为了等用户登录的对话框出现
Sleep(5000)
等待QQ用户登录的对话框
WinWait("
QQ用户登录"
在"
密码"
框中输入密码
ControlSend("
"
"
[CLASS:
Edit;
INSTANCE:
12]"
abcde"
用户"
框中输入qq号
ControlSetText("
1]"
12345"
点击"
按钮
ControlClick("
Button;
11]"
完成后保存文件,默认的扩展名是au3
对于函数我当然不能一个个的解释用法,看帮助文件就行了.我只拿一个举例
参数"
是窗口(window)的ID
是控件(control)的ID,具体到这里就是qq的那个密码输入框
就是我要输入的内容
实现的功能看函数名controlsend就知道,就是向某个控件(control)发送(send)某个指令,也就实现了敲密码的效果
具体到window和control是什么意义?
那就要好好看看文档了,或许还需要看一些window内幕的基础知识.
而"
"
这样的窗口和控件信息是从哪里得到的呢?
见注2
然后就可以调试运行了
点菜单上的"
Tools"
--"
Go"
程序就会运行,运行时,右下角的任务栏会出现一个小图标,运行结束后就消失了.如果程序出了问题卡在那了,就会图标就会一直出现,表示程序没执行完.这个时候可以点"
Stopexcuting"
来退出.
完全没问题之后就可以编译成exe文件了.点"
Compile"
会在源码所在的目录下生成同名的.exe文件.
你双击这个exe就可以看到自动打开qq,自动输入密码用户名,自动点登陆按钮登录的效果了
而实际应用到X程序上的时候,发现了一些小问题,当然还是解决了.这里就只说解决要点,有时候你指定对某个ID的控件进行操作,或许并不会应用到相应的控件上去,这或许跟以下几个方面的因素有关:
1.由于程序是别人开发的,或许使用了非标准的控件或者修改了这个控件响应的方法,所以对我们autoit的标准函数不起作用.
2.当前焦点(Focus)在哪个控件上,例如我的X程序我指定某个控件的时候,输入的内容都到一个控件里面去了,这个怎么办?
使用TAB键将焦点移到指定的控件上,很简单的,你打开某个窗口程序,然后按按TAB按钮,你就懂了.至于focus的问题,也是与windows的基本原理相关.
注1:
(搜自XX)
将某个账号设置为开机自动登录的方法,对注册表做如下修改:
第1步:
运行注册表编辑器,依次展开[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon]分支,然后在右侧窗口双击“DefaultUserName”,接着输入你的登录用户名。
如果没有预设的用户名称,可以在注册表编辑器的菜单栏点选“编辑→新建→字符串值(s)→DefaultUserName”来添加这个项目,注意要区分大小写字母。
第2步:
同样在该分支下,在注册表编辑器的右侧窗口中双击“DefaultPassword”,然后在空白栏内输入你的密码。
假如未发现“DefaultPassword”一项,可按上面的步骤来新建该字符串值。
第3步:
接下来在右侧窗口中双击“AutoAdminLogon”,将数值设置为“1”。
假如未发现“AutoAdminLogon”,可按上面的步骤来新建。
注2:
这样的窗口和控件信息是从哪里来的呢.
AutoIt提供了一个工具"
AutoItwindowinfo"
从开始菜单里面启动它,然后你把你的鼠标移动到你关心的窗口和控件上,它就会实时显示它们的信息.当你需要捕获某个控件信息的时候,按下ctrl+alt+F,就会将当前的信息保持住,你就可以把它们copy到你的代码中了.完成后再按一次ctrl+alt+F,就恢复到实时捕获的状态,你就可以开始捕捉下一个控件的信息了.下图就是我截取qq的用户名输入框这个控件的信息
注3:
很高兴的是,国内也有对这个程序的研究论坛了:
许久没更新博客了,有时候真的不知道该写什么,说真的也没太大的冲动写.
现在经济不景气,个人工作也碰到了稍许困难,真诚的希望2009年大家和我都顺利,幸福~
Windows下自动备份的实现
很久没更新博客了,估计再不来看看的话可能就会长满野草了。
^_^使用Linux的人都知道如果要备份一个目录和文件在Linux下实现是一件很简单的事,一两个语句组成的shell文件就能实现强大的备份功能(当然包括数据库的备份)。
但在Windows下要实现这样的功能可不是一件容易的事。
我所说的备份功能当然是指不借助收费软件的基础下实现全自动的备份。
包括备份文件保存的天数;
备份成功的状态通知等;
如果安全等级比较高还需要实现将状态写入日志文件。
在开始前先交待一下要求:
共有三台服务器上的数据需要备份;
备份成功与否需通过邮件的方式通知用户,备份的数据要求除了在本机保存一份外还需保存一份到网络硬盘上,本例中的网络硬盘为192.168.42.6。
一台机器是win2003中文企业版+MSSQL2000企业版的数据库;
其中只需要备份由SQL任务备份下来的文件,要求保存最近7天的备份数据。
第二台机器是win2000中文企业版+MSDE数据库;
需备份数据库。
要求保存最近7天的数据。
(如果你有所了解MS的产品,就会明白MSDE是微软的一款免费的面向桌面的数据库,功能有限,本身不提供数据库的备份功能)所以这些功能需要我们以命令的方式来完成,估计难点的地方也是在这里。
第三台机器是win2000中文企业版;
需备份一个文件夹。
也是要求备分最近7天的数据。
这里使用windows系统自带的ntbackup.exe来进行备份操作。
以上是要求,但是俗话说“巧妇难为无米之炊”,仅靠微软的这些工具是很难实现这样的功能的,所以需要借助一些外来的工具。
它们是:
1:
blat.exe(主要用来发送邮件提醒)
2:
forfiles.exe(winxp/win2003版,系统自带)
3:
forfiles.exe(win2000版,需下载)
要实现的效果图如下:
这一张是第一台机器要实现的结果图。
这一张则是第二台机器的结果图。
下面以第二台机的备份为蓝本来介绍怎样实现功能。
我只是说明一下我认为比较重要的地方,如果你对这里的语句有疑问请补习一下windows下的命令的用法。
当然,如果你的环境中是用磁带来备份,可以参考以下的文章。
1.
HowdoIperformanNTBackupinWindows2000,withouthavingtomanuallymanagethemedia?
(Tip#2265)
[url]
2.
HowcanmyscheduledNtbackupreacttomyfailuretoinsertatapeinthetapedrive?
(Tip#5955)
3.
Freewarecommand-lineSMTPmailer(Tip#4721)
4.
Windows2000NTBackupcommandlineswitches(Tip#2148)
5.
WhatmediadoIhaveinmytapelibrary?
(Tip#4540)
[url]
@echooff
ifexistz:
netusez:
/delete
#如果存在已映射的网络盘则删除它
netusez:
\\192.168.42.6\exbakpass83/user:
xon\administrator
#映射网络盘,其中\\192.168.42.6\exbak是网络路径;
pass83是密码,xon\administrator是用户名(如果是域环境需要带域名,工作组则需加主机名)
ifexistbackup.logdelbackup.log
ipconfigbackup.log
\BackupScript\blat.exe-install192.168.42.15mail@
#初始化邮件提醒服务,其中192.168.42.15是内部邮件服务器,也可以使用外部,方法类似
ifnotexistz:
(gotoFail)else(gotook)
:
Fail
echo%date%:
%time%BackupofUFDataBaseofDayFail
backup.log
#将备份时间记入日志文件
echoNetworkservicesisnotunaccess
\BackupScript\blat.exeC:
\BackupScript\backup.log-tomail@-s"
DayBackupFail"
-umail@-pwpassword
#将backup.log文件发给mail@用户,主题是"
,如果邮件服务器SMTP需要验证则加-u用户名-pw密码这些参数做验证,否则无需这两个参数。
gotoend
OK
ifexistC:
\BackupScript\BackupUF_Day.sqldelC:
\BackupScript\BackupUf_Day.sql
#建立SQL备份文件,因为MSDE不能自动备份
echousemaster;
C:
echogo
echoBackupdatabaseUFDATA_002_2008
#备份数据库UFDATA_002_2008
echotodisk='
d:
\backup\UFDATA_002_2008_%date:
~4,4%%date:
~9,2%%date:
~12,2%.bak'
#设定数据库备份路径的保存路径。
其中%date:
~12,2%这个参数是取当天的日期,win2000和winxp两者格式不完全相同。
它的意思是从data命令显示出来的数据中从第四位取起连续取四位数据做为第一部份,后面的意思相同。
echowithinit,nounload;
echoBackupdatabaseUFDATA_105_2008
\backup\UFDATA_105_2008_%date:
echoBackupdatabaseUFDATA_110_2008
\backup\UFDATA_110_2008_%date:
echoBackupdatabaseUFDATA_306_2008
\backup\UFDATA_306_2008_%date:
#有关SQL的备份语句的使用方法可以参考:
[url]
echoBackupDataBase
echoWaitting.....
\PROGRA~1\MicrosoftSQLServer\80\Tools\Binn\OSQL.exe"
-Slocalhost-Usa-P-iC:
\BackupScript\BackupUf_Day.sql-oC:
\BackupScript\UF_%date:
~12,2%.log
#调用MSDE安装路径下的命令来实现备份操作,注意参数的大小写。
输出备份的状态到log文件中。
\UFmkdirz:
\UF
%time%BackupofUFserverDataBase
echoWaiting......
set/aDays=%date:
~12,2%
#使用/a参数可以实现对日期数据的运算
\BackupScript\forfiles_20.exe-pd:
\backup\-d-0-mUF*_2008_%days%.bak-c"
cmd/ccopy@FILEz:
\UF\"
#forfiles_20.exe表示是win2000下版本,它使用的要求比在winxp/win2003下严格,而且两个版本的文件不能通用;
还需注意参数的大小写及间隔。
该语句的意思是如果d:
\backup\下有今天的UF*_2008_%days%.bak文件则copy到z:
\UF\。
\backup\-d-7-mUF*_2008_*.bak-c"
cmd/cdel@FILE"
#删除d:
\backup\下超过7天的文件
\BackupScript\forfiles_20.exe-pz:
\UF\-d-7-mUF*_2008_*.bak-c"
#删除网络上超过7天的文件
\uf\UF*%days%.bakgotoFail
%time%DayBackupofUFDataBaseSucess
DayBackupUFSucess"
-umail@-pwP@$$w0rd-attachtC:
#发送状态文件,并将C:
~12,2%.log作为附件发送。
end
delbackup.log
/delete
delC:
~12,2%.log
上述的文件说明了自动备份数据库的方法,当然没有考虑到更复杂的应用,但是基本上可以使用并完成操作了。
如果不需要备份数据库则只需把其中有关数据库SQL语句部份去掉就可以了。
还有一点没有说到的就是在命令方式下利用ntbackup.exe进行自动备份。
其实参考微软的说明文件就可以写出备份语句了。
下面这我第三台机器使用的备份语句:
ntbackupbackupC:
\Teleph~1\/j"
BackupofPhoneCostDataBase"
/f"
\backup\Phone%days%.bkf"
/mnormal
如果看不懂的话去读下这篇文章:
其实熟悉了windows下的命令,也可以用它来完成一些比较复杂的应用。
不是吗?
本文出自51CTO.COM技术博客
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AutoIt Windows的自动化脚本学习总结 Windows 自动化 脚本 学习 总结