VB实现锐捷客户端自动输入及登录
摘 要:文章利用VB编写程序实现动态模拟输入方法,使电子阅览室的计算机在完成网络克隆之后,自动填写计算机锐捷帐号和密码并登录,进一步提高电子阅览室的维护效率。
下载论文网 关键词:动态模拟输入;自动填写;登录;维护效率 中图分类号:TP393.08 文献标识码:A 文章编号:1006—8937(2012)11—0081—02 在电子阅览室进行网络克隆后可以通过文献[1]、[2]和文献[3]中的方法,自动修改计算机名称和IP地址等信息,这样提高了机房的维护效率。
但是现在很的高校使用锐捷实名制认证,这样电子阅览室的计算机重新网络克隆后,还需要一台一台的输入锐捷帐号和密码装,这样使机房的维护效率下降。
本文通过VB编写程序实现每一台计算机能自动进行帐号和密码的输入。
这样将进一步提高电子阅览室维护的效率。
1 实现原理 锐捷客户端是一个专门用于大学教育网(校园网)拨号的软件,便于学院的网络管理。
由于在机房进行计算机维护时,网络克隆后,每一台计算机的锐捷帐号和密码必须要重新输入。
因此这一项工作也是影响机房维护效率的一个重要方面。
经过对锐捷客户端的使用发现,锐捷的帐号和密码是加密码后保存在注册表里的,所以没有办法通过对注册的修改进行自动输入帐号和密码。
但是锐捷登录客户端有一个保存帐号和密码的功能,所以本文通过模拟人工输入帐号和密码的过程,并连接登录。
2 实现方法 要实现模拟人工输入帐号和密码,必须知道本机的账号和密码,这个通常是由网络管理中心得到,但是并没有将计算机与帐号相关联,为了进行关联,现设计一个电子表格,格式如表1所示。
为了模拟人工输入帐号和密码,必须在表1—1中,通过计算机名称找到对应的帐号和密码,再填入到锐捷客户端登录界面。
VB实现从xls表格读取数据程序参照常规做法即可完成 此表格的文件名存放在config.txt文本文件中,格式如下: Title=锐捷安全认证客户端 displayTime=1000 xlsname=341110 Title是锐捷客户端登录窗口的标题名称,displayTime 是本程序延时关闭时间,xlsname是锐捷帐号和密码表的文件名称,不含扩展名。
其次是在VB中读出表格中与本台计算机名称相对应的帐号和密码,打开配置文件config.txt 并通过以下程序获取锐捷帐号和密码表的文件名。
FreeNum = FreeFile ‘Freenum表示一个空闲的文件号 Open App.Path & "、、config.txt" For Input As #FreeNum ‘打开配置文件“config.txt”,for input表示以输入方式(即读取文件)打开。
i = 0 Do Until EOF(FreeNum) ‘循环,直到文件结尾。
Eof函数用来判断文件是否读完 Line Input #FreeNum, tStringsConfig(i) tStringsConfig(i) = Mid(tStringsConfig(i), InStr(tStringsConfig(i), "=") + 1, Len(tStringsConfig(i))) i = i + 1 Loop Close FreeNum computerName = VBA.Environ("computername") 读取锐捷帐号和密码表的名称后打开表, strName = App.Path & "、" & tStringsConfig(2) & ".xls" ‘EXCEL文件名 strSheetName = "sheet1" ‘EXCEL表名 读取与本机分配的帐号和密码。
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & strName & ";Extended Properties=‘Excel 8.0;HDR=Yes‘" ‘连接EXCEL文件 sql = "select * from [" & strSheetName & "$] where 计算机名称=‘" & computerName & "‘" ‘打开EXCEL表" rs.Open sql, Conn, 3, 3 If rs.RecordCount Conn.Close ‘关闭对象 接下来是要对锐捷登录窗口中的用户名和密码进行自动输入,登录界面如1所示。
最重要的是如何找到帐号和密码的输入框,并模拟输入帐号和密码。
方法如下,首先用FindWindow找出锐捷登录窗口的句柄,再使用spy++软件获得锐捷登录窗口下的控件ID号,用户名文本框的ID号是H3E8,密码文本框的ID号是H3E9,连接按钮的ID号是H1。
就可以对该控件进行控制。
主要代码如下: 找出锐捷登录窗口的句柄 hwnd = FindWindow(vbNullString, tStringsConfig(0)) 通过GetDlgItem函数得到相应控件的句柄。
buttonhwnd = GetDlgItem(hwnd, &H1) usernamehwnd = GetDlgItem(hwnd, &H3E8) passwordhwnd = GetDlgItem(hwnd, &H3E9) 通过SendMessage函数向锐捷帐号文本框输入帐号: SendMessage usernamehwnd, WM_SETTEXT, 0&, ByVal tStrings(0) 通过SendMessage函数向锐捷密码文本框输入密码: SendMessage passwordhwnd, WM_SETTEXT, 0&, ByVal tStrings(1) 点击登陆按钮 SendMessage buttonhwnd, BM_CLICK, 0&, ByVal 0& 经过实践,要延时一段时间后本程序才能关闭,这样才能保证锐捷认证的登录。
此程序中要加入定时器,其作用是在模拟输入帐号和密码后,自动延时关闭本程序。
最后将此文件通过网络控制软件同时运行,就可以在几秒内将成百上千的计算机进行统一填写锐捷帐号和密码。
大大提高机房维护效率。
3 结 语 此动态模拟输入方法,可以用来完成很多需要自动完成的地方,比例自动点击确定按钮,自动输入数据等。
为计算机的高效管理提供了参考方法。
参考文献: [1] 关中玉,谢奇,高桐.应用Ghost网络克隆技术实现批量安装计算机[J],医学信息学杂志,2007,(5). [2] 方胜.批处理在电子阅览室管理中的应用[J].电脑知识与技术[J].2009,(21). [3] 白文秀.通过VB编程实现计算机自动改名[J].吉林师范大学学报,2006,(1).