ref_of_au3
- 格式:pdf
- 大小:1.61 MB
- 文档页数:31
AU3函数的不完全整理ClipGet获取剪贴板保存的数据ClipPut向剪贴板写入数据EnvGet返回指定的系统环境变量的值EnvSet写入或修改一个环境变量EnvUpdate更新操作系统的环境变量MemGetStat获取内存相关信息文件/目录/驱动器的管理DirCopy复制指定目录及其所有子目录和文件DirCreate新建一个目录/文件夹DirGetSize回指定目录的占用空间大小(单位:字节)DirMove移动指定目录及其所有子目录和文件DirRemove删除一个目录/文件夹DriveGetDrive返回一个含有指定驱动器盘符的数组DriveGetFileSytem返回指定驱动器的文件系统类型DriveGetLabel若指定的驱动器分区的卷标非空则返回该卷标值DriveGetSerial返回指定驱动器的序列号DriveGetType返回指定驱动器的类型DriveMapAdd映射网络驱动器DriveMapDel断开网络驱动器DriveMapGet获取已映射网络驱动器的路径DriveSetLabel修改指定驱动器的卷标DriveSpaceFree以MB(兆字节)为单位返回指定路径所在分区的剩余空间DriveSpaceTotal以MB(兆字节)为单位返回指定路径所在分区的容量大小DriveStatu以字符串的形式返回指定驱动器的状态FileChangeDir更改当前的工作目录FileCloe关闭此前已打开的文本文件FileCopy复制一个或多个文件FileCreateShortcut创建指定文件的快捷方式(.lnk文件)FileDelete删除一个或多个文件FileE某it检查指定文件或目录是否存在FileFindFirtFile搜索指定字符串并返回与之匹配的文件名FileFindNe某tFile搜索指定字符串并返回(下一个)与之匹配的文件名,但要求在调用过FileFindFirtFile函数之后FileGetAttrib返回指定文件的属性代码FileGetLongName返回指定路径的长文件名FileGetShortcut获取指定快捷方式的各种属性FileGetShortName返回指定路径的短文件名(按8.3命名规则,即文件前缀8个字符,后缀3个字符)FileGetSize以字节为单位返回指定文件的大小FileGetTime返回指定文件的时间戳(时间和日期)信息FileGetVerion返回指定“文件”(通常是指可执行文件)的版本信息FileIntall包含并装入指定文件到编译后的脚本程序中FileMove移动一个或多个文件FileOpen打开指定的文本文件以供读写FileOpenDialog显示一个文件打开对话框FileRead从此前已打开的文本文件中读取指定数量的字符FileReadLine此前已打开的文本文件中读取指定行的字符FileRecycle 把指定的文件或目录放入回收站FileRecycleEmpty清空回收站FileSaveDialog显示一个文件保存对话框FileSelectFolder显示一个文件夹选择对话框FileSetAttrib修改一个或多个文件的属性FileSetTime修改一个或多个文件的时间戳FileWrite向此前已打开的文本文件尾追加一行数据FileWriteLine向此前已打开的文本文件尾追加一行数据IniDelete从某标准配置文件(某.ini)中删除某个数值IniRead 从某标准配置文件(某.ini)中读取某个数值IniReadSection从某标准配置文件(某.ini)中读取某个节中的所有关键词或值IniReadSectionName从某标准配置文件(某.ini)中读取所有段的信息IniWrite向某标准配置文件(某.ini)中写入某个数值图象及声音函数AutoItSetOption调整各种函数/参数的运作方式Pi某elCheckum生成某区域象素的校验和ColorMode设置要使用的颜色模式Pi某elCoordMode设置用于象素函数的坐标参照,可以是绝对位置也可以是相对当前激活窗口的坐标位置Pi某elGetColor返回指定坐标位置上的象素点的颜色值Pi某elSearch在指定矩形区域中搜寻与指定颜色值匹配的象素SoundPlay播放指定的音频文件SoundSetWaveVolume调整系统波形音量的百分比大小GUI相关GUICreate创建一个GUI窗口控件的创建GUICtrlCreateAvi在GUI上创建一个AVI视频剪辑控件GUICtrlCreateButton在GUI上创建一个按钮控件GUICtrlCreateDummy在GUI上创建一个Dummy控件GUICtrlCreateEdit在GUI上创建一个编辑框(Edit)控件GUICtrlCreateGroup在GUI上创建一个选择框(Group)控件GUICtrlCreateIcon在GUI上创建一个图标(Icon)控件GUICtrlCreateInput在GUI上创建一个输入框(Input)控件GUICtrlCreateLabel在GUI上创建一个静态的Label控件GUICtrlCreateLit在GUI上创建一个列表(Lit)控件GUICtrlCreateLitView在GUI上创建一个LitView控件GUICtrlCreateLitViewItem在GUI上创建一个LitView项目控件GUICtrlSetBkColor设置指定控件的背景颜色GUICtrlSetColor设置指定控件的文本颜色GUICtrlSetCuror为特定控件指定一个鼠标指针GUICtrlSetData修改指定控件的相关数据GUICtrlSetFont设置指定控件的字体GUICtrlSetImage设置指定控件的位图或图标GUICtrlSetLimit设置某些控件的字符数或象素数限制GUICtrlSetOnEvent为指定控件的点击行为定义一个用户函数GUICtrlSetPo调整某个控件在窗口中的坐标位置GUICtrlSetReizing设置某个控件的大小调整方式GUICtrlSetState调整指定控件的状态GUICtrlSetStyle更改指定控件的风格GUICtrlSetTip定义指定控件的关联提示文本GUI参数GUISetBkColor设置窗口的背景颜色GUISetCoord设置下一控件的(绝对)坐标位置GUISetCuror设置(鼠标经过窗口时的)鼠标指针GUISetFont设置窗口的默认字GUISetHelp设置在用户按下F1时就打开的(可执行)文件GUISetIcon设置用在窗口(标题栏上显示)的图标GUISetOnEvent为指定控件的点击行为定义一个用户函数GUISetState调整窗口的状态GUIDelete销毁指定窗口及其所有控件(在内存占用的空间)GUICloeOnESC当用户在一个GUI窗口(处于激活状态时)按下ESC 键则$GUI_EVENT_CLOSE消息将被发送。
WOSA3.0错误码1.公共错误码(-2) WOSA版本不对(-3) WOSA版本不对(-4) 操作取消(-5) 注册表配置不对(-6) 注册表配置不对(-7) 注册表配置不对(-8) 注册表配置不对(-9) 注册表配置不对(-10) 注册表配置不对(-11) 注册表配置不对(-12) 注册表配置不对(-13) 设备没有准备好,设备故障(-14) 设备故障(-15) 内部错误(-16) 无效地址(-17) 无效的APP句柄(-18) 无效的缓冲区(-19) 无效的命令种类(-20) 无效的操作命令(-21) 无效的事件类别(-22) 无效的服务句柄(-23) 无效的服务句柄WFS_ERR_INVALID_HWND (-24) 无效的窗口句柄WFS_ERR_INVALID_HWNDREG (-25) 无效的参数WFS_ERR_INVALID_POINTER (-26) 无效的指针WFS_ERR_INVALID_REQ_ID (-27) 无效的请求IDWFS_ERR_INVALID_RESULT (-28) 无效的返回结果WFS_E RR_INVALID_SERVPROV (-29) 无效的SP,可能sp服务没有启动WFS_ERR_INVALID_TIMER (-30) 无效的参数WFS_ERR_INVALID_TRACELEVEL (-31) 无效的日志级别WFS_ERR_LOCKED (-32) 服务已经被加锁WFS_ERR_NO_BLOCKING_CALL (-33) 不能调用BLOCKING CALLWFS_ERR_NO_SERVPROV (-34) sp不存在,可能sp服务没有启动WFS_ERR_NO_SUCH_THREAD (-35) 线程不存在WFS_ERR_NO_TIMER (-36) 计时器创建失败WFS_ERR_NOT_LOCKED (-37) 加锁不成功WFS_ERR_NOT_OK_TO_UNLOAD (-38) 不能加载sp的dllWFS_ERR_NOT_STARTED (-39) StartUp失败WFS_ERR_NOT_REGISTERED (-40) 没有注册事件WFS_ERR_OP_IN_PROGRESS (-41) 操作正在执行中WFS_ERR_OUT_OF_MEMORY (-42) 内存溢出。
Run--------------------------------------------------------------------------------运行外部程序。
Run ( "文件名" [, "工作目录" [, 标志]] )参数文件名可执行文件的完整路径(文件格式为EXE、BA T、COM 或PIF)。
工作目录[可选参数] 工作目录。
标志[可选参数] 启动程序时的初始状态:@SW_HIDE = 隐藏窗口@SW_MINIMIZE = 最小化窗口@SW_MAXIMIZE = 最大化窗口WinWaitActive暂停脚本的执行直至指定窗口被激活(成为可活动状态)为止。
WinWaitActive ( "窗口标题", ["窗口文本"], [超时时间] )参数窗口标题目标窗口标题。
窗口文本[可选参数] 目标窗口文本。
超时时间[可选参数] 以秒为单位。
返回值成功:返回值为1。
失败:返回值为0,说明已超时。
注意无相关WinActive, WinExists, WinWait, WinWaitClose, WinWaitNotActive, WinWaitDelay(选项)示例;等待窗口"无标题" 出现并激活WinWaitActive("无标题");同上,但指定了等待时间为5 秒WinWaitActive("无标题", "", 5)Send向激活窗口发送模拟键击操作。
Send ( "按键" [, 标志] )参数按键要发送的按键序列。
标志[可选参数] 更改程序处理“按键”的方式:标志= 0 (默认),按键序列中含有的特殊字符比如+ 和! 将被视为SHIFT 和ALT 键。
标志= 1,按键将按原样发送。
返回值无注意关于使用Send 函数的更多说明/技巧请查看附录。
广州方言字大全A嗌aai3 ai ai kuwl 吵架(吵架)呃aak7[厄] e e kdbn 让他骗了(讓他騙了)鈪aak8-2[軛] 未知ngag qdbn 鐲子:金鈪啱am1 yan ngam kmdg 對:啱晒(全對)奀an1 en en gidu 類似讀銀;瘦弱(瘦弱)晏aan3[鷃] yan yan jpvf 晏晝(下午);吃午饭(吃午飯)餲aat8[壓] ai ai wyvn 廁所好餲(廁所很臊臭)拗aau2/aau3 ao ao rxln 拗勁(頂嘴);拗斷(折斷)翳ai3 yi yi atdn 翳焗(悶熱),閉翳(犯愁)詏aau3[坳] yao yao yxln 争执(爭執),也可寫成拗扼ak7[厄] e e rdbn 握手(握手);手扼(手鐲)揞am2[黯] an an rujg 揞實個荷包(捂住錢包)哽ang2 geng geng kgj 给硬物頂住罯ap7[噏] an an lujf 生草藥——罯得就罯(噏)悒ap7[噏] yi yi nkcn 内心忧郁(內心憂鬱)噏ap7 xi xi kwgn 咪亂噏二十四(別胡說八道)扤at7 wu wu rgqn 近讀[兀];將棉胎扤實啲(把棉被壓緊點)罨ap7[醃] yan yan ldjn 個身濕曬,罨住好不舒服(捂著身體不舒服)沤(漚) au3 ou ou iaqy (iakk) 漚肥,漚氣(憋氣)B湴baan6[辦] ban ban iuo 泥湴(爛泥)镚(鏰) bang1[崩] beng beng qmee(qmee) 一個鏰都没(一分錢都沒有)给bei2[比] bi bi lgjj 给(給),不是寫[俾]髀bei2[比] bi bi exxn 通[肶],即(大腿)潷bei3[痹] bi bi ittn 潷咗啲菜汁去(將菜汁濾去)咇bit7[必] bi bi kntt 噴:水管壞咗,咇水出嚟飆biu1[標] biao biao dddq(dddj) 他飆得好快(他跑得很好)噃bo3[播] bo bo ktol 好了不起噃(很了不起)菢bou6[哺] bao bao arqn 菢鷄仔(孵小鷄)伏buk9[僕] fu fu wdy 趴,俯伏:伏伊人\伏匿匿(捉迷藏)埲bung6 bang bang fdwh 推冧呢埲牆(推倒這堵牆)唪bung6[埲] feng beng/feng kdwh 一唪臭味(一般臭味兒)C搽caa4[茶] cha cha raws 搽脂蕩粉(塗脂抹粉)垃圾篸caam2[慘] can can fufe tcce 簸箕之一,非寫為(垃圾鏟)岩巉caam4 chan chan mqky 近讀[慘];岩巉——指難看罉caang1[撐] cang cang rmir 砂煲罌罉(瓦鍋瓶罐)觘caau2 chao chao qeit 给只牛觘起(給牛挑起了)侵cam1 qin qin wvpc 讓…參加、加入:侵埋我玩啦(讓我參加一塊兒玩吧);侵啲水入去(加點水進去)谮(譖) cam3[唚] zen zen yaqj(yaqj) 你好譖呀!(你眞囉嗦!)搊cau1[抽] chou chou 手搊(有挽手的袋子);一搊鎖匙;搊後腳唓(嗟) ce1[車] che(jie) che(jie) klh (kuda) 唓,你估我不知道什么?(呸,你認為我不知道?)黐ci1[癡] chi chi twic 即[粘];黐線(神經病),非寫為[癡線]嗤ci1[癡] chi chi kbhj 打喷嚏(打噴嚏)撍cim4[潛] qian qian raqj 撍烏龜(一種撲克遊戲)千祈cin1 kei4 qian qi qian qi tfk pyrh 千祈要記住(一定要記住)掅cing3[稱] qing qing rgeg 掅起個袋(把袋子提起來);抽掅(挑剔)盛酒陶器cing4[情] cheng cheng fkgg 盛酒陶器(盛酒陶器)啋coi1 cai caikesy 啋,咪講不吉利嘅嘢(呸,別說些不吉利的話) 焯coek8[桌] zhuo zhuo ohj 同[灼];焯(灼)生菜噱coek8[桌] jue jue khae 搞新噱頭(搞搞新意思)暢coeng3 chang chang jhnr 暢散紙D覘(覘) daam1[擔] chan chan(ji) hkmq (hkhq) 頭覘天,眼望地啖daam6[氮] dan dan kooy 食啖飯啦(吃口飯吧)踭dzaang[爭] zheng zheng khqh 高跟鞋;脚踭(高跟鞋);腳踭(腳跟)嗒daap7 ta ta kawk 咂糖果,有时喻指心里美滋滋(咂糖果)沓daap9[踏] ta ta ijf 一大沓(一大疊),有钱(有錢)笪daat8[韃] da da tjgf 这块地方(這塊地方)嗲de2 dia dia kwqq 眼淚嗲嗲渧(淚汪汪);嗲聲嗲氣(嬌聲嬌氣)揼dam1 未知dem rdiy 揼時間(拖時間)沊dam2[抌] dan dan pqii 水聲,沊一聲跳落水抌dam2[沊] dan dan rpqn 扔小石子(扔小石子)髧dam3 dan dan depq 頭髮長到髧(垂)落膊頭趸(躉) dan2 dun dun dnkh 擁躉(捧場者);躉低行李(放下行李)扽dan3 den den rgbn 路不平,開車好扽(路不平,開車很顛簸)炖(燉) dan6 dun dun ogbn 燉冬姑戥dang6[鄧] deng deng jtga 匹配,替你可惜(替你可惜)頭耷耷dap7 da da dbf 頭耷耷(垂頭喪氣的樣子)腯dat7/dyt7 dun dun erfh 肥嘟嘟(肥嘟嘟)窦(竇) dau6[豆] dou dou pwfd (pwfm) 雀竇(鳥窩);老竇(爸爸),不要寫為[老豆]嗲de2/de4 dia dia kwqq 嗲聲嗲氣(嬌聲嬌氣)哋dei2/dei6[地] dei di/dei kfbn 他哋(他們)趯dek8 ti ti fhny 跑:東趯西趯(東奔西跑)掟deng3 ding ding rpgh 掷小石块(擲小石塊)埞deng6[訂] di di fpgh 没埞企(沒地方站)啲di1/dit7 di di krqy 有些人(有些人);啲啲多(一點兒)扚dik7 di di rqyy 引,拉;扚起他(拉起他)掂dim3[店] dian dian ryhk 摸一下都不行(摸一下都不行)恶心diu2 diao diao nkmh 男性生殖器;男子性交動作啄doeng1 zhuo zhuo keyy 鷄啄不斷(沒完沒了)厾duk7[督] du du nfci 讀[篤],厾穿個窿(捅個窿)戙dung6[洞] dong dong mgka 一戙都没(什麼也沒有)F瞓fan3[訓] fen fen hykh 瞓覺(睡覺)窟fat7[忽] ku ku pwnm 屁股(屁股)戽fu3[富] hu hu ynuf 戽水(舀水);戽被(睡覺踢被子)G鎅gaai3[介] gai gai qlwj 鋸;割;切;裁:鎅玻璃,鎅紙刀胳肋底gaak8[格]laak7 ge lei di ge lei di etkg eln yqa 即胳肢窩蟑螂gaat9 dzaat9-2 yue you yue you jhk jhk 即蟑螂鉸(鉸) gaau3[較] jiao jiao quqy (quqy) 鉸剪(剪刀);門鉸(門合葉)偈gai2 jie jie wjqn 傾偈(聊天),非寫為[傾計]髻gai3[計] ji ji defk 盤在頭頂或腦後的發結;丫角髻噉gam2[敢] dan dan knbt 這樣:这也行!(這樣都可以!)咁gam3[禁] gan gan kafg 這麼:咁好人(這麼好人)黃黚黚gam4 jian jian amwu lfof lfof 黚——淺黃黑色撳(撳) gam6 qin qin rqqw (rqqw) 近讀[甘];撳釘(圖釘);撳電掣(按電鈴)枧(梘) gaan2[簡] jian jian smqn (shqn) 番梘(肥皂)大青蛙gap8[鴿]naa2 ha na ha na jwgk bxgu 蛤蟆,青蛙或蟾蜍佮gap8[蛤] e/ge e/ge wwgk 佮份(合份);拮gat1[吉] jie jie rfkg 他拮咗我一下(他刺了我一下)趌跛跛gat9 bai1 bai1 ji ji fhfk khhc 近讀[吉];趌跛跛(單腳跳);滚蛋(滾蛋) 同[趷]嚿gau6[舊] huo huo kawv 一嚿石頭(一塊石頭)嘅ge3 ge ge/kai kvcq 我嘅書(我的書)擏geng6 jing jing raqt 近讀[鏡]:擏住擏住(好小心的樣子)喼gip7[篋] 未知gib kqvn 喼汁(調味醬汁);是英語catsup 的音譯詞篋(篋) gip7 qie qie tagw (tadw) [皮喼]的本字;皮篋嗰go2 gao go kwld 嗰個人(那個人);那天(那天)弶gong6 jiang jiang xyiy 類似讀[鋼];蟹弶(蟹螯)蛊(蠱) gu2[古] gu gu jlf 使人心意迷惑累gui6 gui gui fclv 即(累);返工好累焗guk9[局] ju ju (kao) onnk (otfk) 焗飯(燜飯) 同「焅」啩gwaa3[卦] gua gua kffh 你會應承啩?(你會答應吧?)不是寫為[呱]或[掛]掴(摑) gwaak8 guo guo rlgy (rlag) 摑他一巴(抽他一個耳光)躀gwaan3[慣] guan guan khxm 摔倒(摔倒)刮gwaat3[劀] gua gua tdjh 找人:刮他出嚟。
AutoIt快速开发指南2010年11月神州数码系统集成服务有限公司AutoIt快速开发指南 (1)1. 启动程序 (2)2. 窗口操作 (3)3. 菜单操作 (5)4. 工具栏操作 (5)5. 表单控件操作 (6)5.1 文本框 (6)5.2 选择控件 (7)6. 点击操作 (8)6.1 控件点击 (8)6.2 鼠标点击 (8)7. 键盘操作 (9)7.1 一般字符 (9)7.2 快捷操作 (9)8. 字符串处理 (9)9. 数组处理 (10)9.1 一般数组 (10)9.2 特殊数组 (10)10. 日期时间 (11)11. 像素捕获 (12)12. 文件操作 (12)12.1. 一般文件 (12)12.2. ini文件 (13)13. 常用控件操作 (13)13.1. ListBox控件 (13)13.2. ListView控件 (14)14. 运行参数设置 (15)15. 加密解密 (15)15.1. 加密 (15)15.2. 解密 (16)16. GUI操作 (16)17. IE操作 (17)18. 自定义函数 (18)19. 附录 (28)1.启动程序启动exe类型文件,一般使用Run函数Run(“路径”)如:如果运行该函数,程序还没有启动起来,请配置好程序运行的工作目录Run(“路径”,”工作目录”)如:注:有时程序的目录不一定和工作目录相同启动lnk,txt等文件一般使用ShellExecute函数该函数除了可以指定工作目录外,还可以设置启动参数2.窗口操作窗口处理一般都是针对Windows GUI窗口的操作,常用的如下:还有其他一些处理函数,这个可以直接去查找AutoIt的帮助文档。
下面是一个例子,一般在很多地方用到,特别是程序启动或者运行到某个步骤,等待其他窗口处理,一般采用以下脚本判断不建议使用WinWaitActive(“窗口标题”,"窗口文本",”等待时间”),否则,如果该窗口处于非激活状态,会使脚本一直等待直到超时,按照非预设的流程解析运行下去,得不到预期结果。
3.菜单操作菜单点击使用WinMenuSelectItem函数例如点击窗口菜单的文件=》保存当该函数无法操作菜单时候(一般为非标准的Windows GUI),可以在工具栏查找该菜单的快捷启动按钮或者通过发送快捷键进行控制4.工具栏操作对于工具栏快速按钮,可以使用ControlCommand函数处理,菜单操作中很多快捷方式一般都放在工具栏中,这种情况可以多一个选择。
ControlCommand只能操作ToolbarWindow32类型的控件。
控件ID需要通过Windows Info工具获取。
5.表单控件操作5.1文本框在文本框输入数据使用:ControlSetText(“标题”,"",”控件名或ID” ,”输入的字符串数据”)如果需要获取文本框的数据,则使用ControlG etText(“标题”,"",”控件名或ID”)ControlSetText和ControlGetText可以操作单行文本框,密码输入框,多行文本框等。
5.2选择控件选择控件使用ControlCommand函数操作,可以操作单选多选以及单行多行下拉选择(Com boBox和ListBox)等控件。
如选择下拉框的某个选项:而针对Radio,CheckBox等选择类型的控件而对于ListBox类型的选择框,则需要通过一系列组合来操作选项,如下面是获取所有选项数据的例子:6.1控件点击控件点击一般使用:按钮分左键(left),右键(right)等此外还可以在函数后面添加坐标,这对于占用屏幕区域比较大的时候,精确点击某个位置触发其他操作比较重要比如在一个表格中,需要右击某一行记录,弹出右键菜单的情况。
6.2鼠标点击MouseClick函数对于任何点击操作都有效,唯一不理想的是,它涉及坐标点的确定,降低了程序的通用性。
如果非要这么做,建议:1)将当前窗口激活,并最大化2)如果当前窗口禁用最大化,则使用当前窗口相对坐标进行操作键盘操作一般使用Send函数,想激活窗口发送模拟键盘操作7.1一般字符这种情况指向当前激活窗口文本框,发送按键字符,如:7.2快捷操作这种情况一般没有光标的输入,只是针对当前的激活窗口的一些快捷操作,比如按键”ctrl+S”是保存等,如另外一些快捷键如:8.字符串处理针对字符串的处理,一般常需要判断字符串是否存在,或对字符串进行拆分、替换等,下面用一个例子来说明一下:一个用&&连接的子字符串,需要跟某段文字进行匹配,如果发现存在子存在,则替换成指定的字符串其他可以参考官方帮助文档。
9.数组处理数组可以包含不同数据类型的数据,处理起来有两种情况需要注意9.1一般数组这个跟其他程序语言无太大的差别,如下所示:9.2特殊数组特殊数组指某些函数的返回值为数组的情况,或是在运行脚本时候,传递给命令行的参数,AutoIT会初始化一个特殊的数组,这些数组下标也是从0开始,但是为0的项保存的是数组的个数。
命令行返回数组对于脚本参数数组为$CmdLine,可以直接使用$CmdLine[0] ;参数的数量$CmdLine[1] ;第一个参数(脚本名称后面)$CmdLine[2] ;第二个参数...$CmdLine[$CmdLine[0]] ;可以用来表示得到最后一个参数...如果脚本是像下面这样被运行的话:AutoIt3.exe myscript.au3 参数1 "这是一个其它参数"$CmdLine[0] 等价于 (2)$CmdLine[1] 等价于... 参数1$CmdLine[2] 等价于... 这是一个其它参数@ScriptName 等价于... myscript.au3函数返回数组前面用到的StringSplit函数返回值也是一个数组,0位保存的是数组项的个数,数其他还有另外一些特殊的函数,如FileGetTime,WinList等等很多函数,返回值都是数组的情况,具体用法可能有些差异,这些可以参考相关文档。
10.日期时间当前日期时间,可以直接从日期和时间宏中获取,如:@SEC 当前时钟的秒值,值的范围是00 到59@MIN 当前时钟的分值,值的范围是00 到59@HOUR 当前时钟的时值(24时制),值的范围是00 到23@MDAY 当天属本月的第几天,值的范围是01 到31@MON 当前月份,值的范围是01到12@YEAR 当前年份(4位数)计算指定日期间隔后的新日期:_DateAdd(“计算类型”, “间隔数”, “指定日期”)计算两个指定日期的间隔:_DateDiff(“计算类型”, “计算的开始日期”, “计算的结束日期”)11.像素捕获像素捕获主要去获取屏幕某块区域像素点的色值,以此和给定的颜色色值来比较在实际情况中,有时可能不止获取一个点的像素就够了,这时可以通过获取窗口的相关WinGetPos("窗口标题","")坐标位置,然后对某个区块进行扫描。
12.文件操作12.1.一般文件对于一般文本文件的读取:可以使用FileOpen打开文件,在按照要求读取文件对文件进行读写操作,这时,如果只是针对文件读,可以将独占打开的文件进行12.2.ini文件对于ini类型文件,形如:[字段名]关键字=数值文件中可以有多个不同的字段名,每个字段名下有多个关键字,不同字段名下的关键字可以相同。
写入ini文件:13.常用控件操作13.1.ListBox控件ListBox控件,如图所示:在前面提到选择控件,ListBox也是其中一种,前面介绍了如何选中的某行选项,但是在真正的ListBox空间中,多半是记录相关软件运行时的一些状态参数记录,其中第一行是获取控件操作句柄,第二行根据句柄获取控件的记录条数,最后根据记录上遍历,获取每一条记录。
13.2.ListView控件ListView控件展示形如表格,如图所示:其操作如下上面代码,我们首先获取行数,然后指定某列,获取其所有行的文本。
更多ListView操作可以参考ControlListView函数说明。
14.运行参数设置运行参数设置可以调整Autoit各种函数/参数的运作方式,可以通过Opt或者AutoItSetOption函数来设置:常用的有:更多运行参数设置可以参考AutoItSetOption帮助文档说明15.加密解密15.1.加密这里加密的是一个16进制的字符串,其中加密匙可以自己设置,示例中为sop,其中加密算法为AutoIt内置的$CALG_RC4,还可以为$CALG_RC2等等其他。
15.2.解密很简单的两行,不过其中的解密匙和解密算法要跟之前的加密参数对应。
16.GUI操作GUI操作包括创建窗口面板,在面板上创建表单控件及其互动事件处理等一系列连贯配置:上面是一个简单界面包装,一旦界面检测到$WM_COMMAND事件响应,即触发自定义函数WM_COMMAND,窗口包括两个简单的文本编辑控件。
我们还可以设置其他控件的事件处理:这里是针对按钮设置了点击触发事件。
17.IE操作IE操作,不像GUI界面一样,通过AutoIt Window Info就能得到相关控件,进而获取控件句柄进行操作。
我们在操作IE网页时候,需要事先获取HTML页面中的相关Dom节点或元素,所以需要对HTML有一些了解。
下面是一个简单的例子:实例是一个简单操作,打开一个IE窗口,访问百度,然后在搜索网页表单,输入一个要查询的关键字,点击百度搜索。
一般网页很多超链接,对于这些链接的页面,都有很多的Dom节点嵌套,单纯的以对象名称不一定能够获取到某个操作的对象,这时需要从顶级Dom节点,一级一级缩小范围,直到获取到最终操作对象节点,如下所示:这里实例主要是从一个打开的浏览器窗口,获取名为iFrame的frame页面,然后获取其中为Id为divId的节点,进而,取到divId节点下的所有超链接对象,最后一个一个判断,找到某个url,点击超链接。
18.自定义函数把一些常用而相关逻辑的操作,抽离出来,独立成一个模块,供脚本调用,这就需要涉及到自定义函数。
用户可通过使用Func...EndFunc 语句来自定义函数,函数中可以有Return返回值,也可以无,下面我们列出了一些常用的自定义函数,供参考:#include <include/String.au3>#Include <include/date.au3>#include <include/Array.au3>#Include <include/EventLog.au3>#Include <include/File.au3>#Include <include/ScreenCapture.au3>#include <include/GUIListBox.au3>#include <include/Crypt.au3>;获取配置文件Func GetConfigFile()Return String("D:\Digitalchina\AutoAgent\scripts\ConfigParameter.ini") EndFunc;根据给定的日期格式字符串转换成当前日期格式Func ReplaceDateStr($DateStr)SelectCase StringInStr($DateStr,"YYYYMMDD")Return StringReplace($DateStr,"YYYYMMDD",DateYYYY() & DateMM() & DateDD())Case StringInStr($DateStr,"YYYY-MM-DD")Return StringReplace($DateStr,"YYYY-MM-DD",DateYYYY() &"-"& DateMM() &"-"& DateDD())Case StringInStr($DateStr,"YYYY/MM/DD")Return StringReplace($DateStr,"YYYY/MM/DD",DateYYYY() &"/"& DateMM() &"/"& DateDD())Case StringInStr($DateStr,"ABCDD-YYYY");ABC代表英文的短月份格式,如1月=JanReturn StringReplace($DateStr,"ABCDD-YYYY",_DateToMonth(@MON,1) & DateDD() &"-"& DateYYYY())Case StringInStr($DateStr,"MMDD")Return StringReplace($DateStr,"MMDD", DateMM() & DateDD()) Case ElseReturn $DateStrEndSelectEndFunc;返回日期格式Func DateYYYY()Return String(@YEAR)EndFuncFunc DateYY()Return StringRight(String(@YEAR),2)EndFuncFunc DateMM()Return String(@MON)EndFuncFunc DateDD()Return String(@MDAY)EndFunc;写日志,截屏等操作;$fileName 日志文件;$flag 操作标识1为成功,0为失败;$logTxt 写入日志内容,增加在行尾Func WriteLog($fileName,$flag,$logTxt);根据代理约定的相对目录$File_dat= $fileName & ".dat"$File_do = $fileName & ".do"$File_jpg = $fileName & ".jpg";截屏文件_ScreenCapture_Capture($File_jpg);如果截屏失败,则启动画板If FileExists($File_jpg) = 0 ThenSaveImage($File_jpg)EndIf;脚本执行结果文件$file1=FileOpen($File_dat,2)FileWriteLine($file1, $flag)FileWriteLine($file1,$logTxt)FileClose($file1);状态文件$file2=FileOpen($File_do,2)FileWriteLine($file2,"ok")FileClose($file2)EndFunc;启动画图程序,将全屏截图保存为文件;$imgFile 文件保存路径Func SaveImage($imgFile)Send("{PRINTSCREEN}")$picProcess = "mspaint.exe"$pid = Run("mspaint.exe")$picWin = "未命名- 画图"$warnWin = "画图"$saveWin = "保存为"$imgFilePath = StringReplace(GetConfigFile(),"scripts\ConfigParameter.ini",$imgFile) If WinWait($picWin,"",10) ThenWinActivate($picWin)Send("^v")If WinActivate($warnWin) Then ControlClick($warnWin,"","Button1")WinMenuSelectItem($picWin,"","文件","保存")If WinWait($saveWin,"",5) ThenWinActivate($saveWin)ControlSetText($saveWin,"","Edit1",$imgFilePath)ControlCommand($saveWin,"","ComboBox3","SelectString", "JPEG (*.JPG;*.JPEG;*.JPE;*.JFIF)")ControlClick($saveWin,"","Button2")If WinWait($saveWin,"已存在",5) ThenControlClick($saveWin,"已存在","Button1")EndIfEndIfWinWait($imgFile)If WinExists($imgFile) Then WinClose($imgFile)EndIfEndFunc;判断窗口;$win 窗口名称;返回值如果找存在返回1,否则返回0Func ChkProgram($win)Dim $ret$ret=-1If WinExists($win) Then$ret =1Else$ret =0EndIfReturn $retEndFunc;判断程序进程;$process 进程名称;返回值如果找存在返回1,否则返回0Func ChkService($process)Dim $ret$ret=-1$flag = ProcessExists($process)If $flag=0 Then$ret =0Else$ret =1EndIfReturn $retEndFunc;根据给定的字符串匹配ListBox控件中的数据;$title 窗口标题;$listBoxCmp ListBox控件;$matchStr 匹配字符串.如果字符串以"&&"连接,则匹配所有,如果字符串以"||"连接则匹配部分;返回值如果找到匹配的字符串返回1,否则返回0Func MatchListBox($title,$listBoxCmp,$matchStr) Dim $ret,$count$ret=0$num=0$flag=1WinActivate($title)If StringInStr($matchStr,'||')>0 Then$array = StringSplit($matchStr, '||', 1)$flag=0Else$array = StringSplit($matchStr, '&&', 1) EndIf$hWnd = ControlGetHandle($title,"",$listBoxCmp) $count = _GUICtrlListBox_GetCount($hWnd)For $i=0 To $count-1$hLabel = _GUICtrlListBox_GetText($hWnd, $i)If MatchStrArray($hLabel,$array) Then$num = $num + 1If $flag ThenIf $num = $array[0] Then$ret=1ExitLoopEndIfElse$ret=1ExitLoopEndIfEndIfNextReturn $retEndFunc;匹配ListView控件字符串;$title 窗口标题;$listViewCmp ListView控件;$cols 要查找的列,从0开始;$matchStr 匹配字符串;返回值如果找到匹配的字符串返回1,否则返回0Func MatchListView($title,$listViewCmp,$cols,$matchStr)Dim $ret,$count,$rows$ret=0WinActivate($title)$rows = ControlListView($Title,"",$listViewCmp,"GetItemCount")$count=0For $i=0 To $rows-1$iText = ControlListView($Title,"",$listViewCmp,"GetText", $i, $cols)If StringInStr($iText,$matchStr)>0 Then$count=$count+1EndIfNextIf $count=$rows Then $ret=1Return $retEndFunc;匹配日志文件字符串;$logFile 日志文件;$matchStr 匹配字符串.如果字符串以"&&"连接,则匹配所有,如果字符串以"||"连接则匹配部分;返回值如果找到匹配的字符串返回1,否则返回0 Func MatchLogFile($logFile,$matchStr)Dim $line,$array,$result,$count,$flag$result=0$count=0$flag=1If StringInStr($matchStr,'||')>0 Then$array = StringSplit($matchStr, '||', 1)$flag=0Else$array = StringSplit($matchStr, '&&', 1) EndIf$file = FileOpen($logFile, 0)if $file = -1 ThenReturn -1EndIfWhile 1$line = FileReadLine($file)If @error = -1 ThenExitLoopEndIfIf MatchStrArray($line,$array) Then$count = $count+1If $flag ThenIf $count=$array[0] Then$result = 1ExitLoopEndIfElse$result = 1ExitLoopEndIfEndIfWendFileClose($file)Return $resultEndFunc;匹配子字符串是否存在;$str 目标字符串;$arr 匹配字符串;返回值如果找到匹配的字符串返回1,否则返回0Func MatchStrArray($str,$arr)$flag = 0For $i=1 To $arr[0]If StringInStr($str,$arr[$i])>0 Then$flag = 1ExitLoopEndIfNextReturn $flagEndFuncFunc DecryptPwd($encryptStr)$pwdStr = ""If $encryptStr<>"" Then$bEncrypted = Binary($encryptStr)$pwdStr = BinaryToString(_Crypt_DecryptData($bEncrypted, "sop",上面实例函数用到了AutoIt内部函数库,通过#include 关键字包含了进来。