主要使用了几个自动操作
run:运行程序
WinWaitActive:等待某个窗口加载完成,可以根据title【默认】,可以根据class
send:发送内容,如果不转义的话,加参数1,!相当于ALT键
Run("C:\Program Files (x86)\VMware\VMware Horizon View Client\vmware-view.exe") ;WinWaitActive("VMware Horizon Client") WinWaitActive("[CLASS:VMware Horizon Client App Window]");使用autoit info拿到这个class,使用title不精确 send("{ENTER}");选择默认的主机 ;WinWaitActive("VMware Horizon Client") WinWaitActive("[CLASS:#32770]");使用autoit info拿到这个class send("!C");你的凭证不安全,点击继续 WinWaitActive("免责声明") send("{ENTER}");免责声明,点击接受 WinWaitActive("登录") ;send("密码",1);厂不让存密码,这块注释掉了 ;send("{ENTER}");点击登录
升级后的版本,使用DES加密密码,程序中包含加密后的密码,密钥在其它文件中存储
#include <Crypt.au3> $pecryValue="0x65D240B0EEC4F97B211B08743B940E02";加密后的密码 Global $key = IniRead("D:\key.ini", "keysection", "vmkey", "null");密钥保存在key.ini中 _Crypt_Startup() $hKey = _Crypt_DeriveKey($key, $CALG_AES_256) $pvalue = _Crypt_DecryptData($pecryValue, $hKey, $CALG_USERKEY) $pvalue=BinaryToString($pvalue) sleep(1000) Run("C:\Program Files (x86)\VMware\VMware Horizon View Client\vmware-view.exe") ;WinWaitActive("VMware Horizon Client") WinWaitActive("[CLASS:VMware Horizon Client App Window]","109.52.64.214",2000);使用autoit info拿到这个class,使用title不精确 send("{ENTER}");选择默认的主机 ;WinWaitActive("VMware Horizon Client") WinWaitActive("[CLASS:#32770]","VMware Horizon Client 无法验证您连接的服务器的身份",2000);使用autoit info拿到这个class send("!C");你的凭证不安全,点击继续 WinWaitActive("免责声明","关于开发部门使用无线网络的提示:",2000) send("{ENTER}");免责声明,点击接受 WinWaitActive("登录","服务器:",2000) ;ConsoleWrite($key & ":" & BinaryToString($pvalue)) send($pvalue,1) send("{ENTER}");点击登录
key.ini的格式
[keysection] vmkey=123456789;演示用的假密钥
关于DES的加密解密,请参照http://mushme.iteye.com/blog/2326223