使用autoit实现自动操作

使用autoit自动登录vmware的例子
主要使用了几个自动操作
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

猜你喜欢

转载自mushme.iteye.com/blog/2325815