服务器集群管理框架从构思到完成(四)高级应用示例:操作远程Windows服务器的计算器
2012-10-31 10:10
671 查看
(http://2012.aliyun.com/works/finalist阿里云开发者大赛43号作品)
(一)需求描述
今天来个好玩的,我要在本地操作远程Windows服务器[10.34.130.62]上的计算器计算 (1+2+4)*2 的结果并返回。
(二)实现流程(其中一种)
【Windows】:
1. 10.34.130.62打开计算器(多种方式)
2. 10.34.130.62利用Windows API相关命令(参见帮助文档-命令执行引擎)进行计算
3. 10.34.130.62取得计算结果
4. 10.34.130.62关闭计算器
(三)Lua脚本实现(基于/article/7784798.html)
--脚本入口和出口函数EnterBegin()
function EnterBegin()
--连接到服务器 10.34.130.62和10.34.130.44
ExecCommand("127.0.0.1:connect_one_server{@10.34.130.62@}")
sleep(1000)
ExecCommand("127.0.0.1:get_connect_servers{@all@}")
-----------------------------windows-----------------------
--1. 10.34.130.62打开计算器(多种方式)"C:\\Windows\\System32\\calc.exe"
--ExecCommand("10.34.130.62:win_cmd{@C: && C:\\Windows\\System32\\calc.exe@}")
--ExecCommand("10.34.130.62:open_file{@C:\\Windows\\System32\\calc.exe@}")
ExecCommand("10.34.130.62:open_exe{@C:\\Windows\\System32\\calc.exe|null@}")
sleep(1000)
--2. 10.34.130.62利用Windows API相关命令(参见帮助文档-命令执行引擎)进行计算
--给控件ID为160发送文本 (1+2+4)*2
ExecCommand("10.34.130.62:win_api{@calc|send_text|160|1+2+4@}")
sleep(500)
ExecCommand("10.34.130.62:win_api{@calc|send_text|160|*2@}")
sleep(500)
--点击"="按键ID为121
ExecCommand("10.34.130.62:win_api{@calc|click|121@}")
sleep(500)
--3. 10.34.130.62取得计算结果(由于可能是图片无文本属性所以取得空值)
ExecCommand("10.34.130.62:win_api{@calc|get_text|160@}")
sleep(500)
--模拟键盘输入 Alt+2
--ExecCommand("10.34.130.62:win_api{@calc|send_key|%{2}@}")
--sleep(500)
--模拟键盘输入 Ctrl+H
ExecCommand("10.34.130.62:win_api{@calc|send_key|^{h}@}")
sleep(500)
--点击相对坐标(140,40)
ExecCommand("10.34.130.62:win_api{@calc|click_xy|140|40@}")
sleep(500)
--模拟键盘输入 F1
ExecCommand("10.34.130.62:win_api{@calc|send_key|{F1}@}")
sleep(500)
--4. 10.34.130.62关闭计算器
--ExecCommand("10.34.130.62:kill_proc{@calc@}")
return 1
end
function sleep (a)
local b = 1000000*a
for i=0,b,1
do
a = i
end
return a
end
(四)执行结果截图
【Windows-10.34.130.62】
【Local-Output】
【一些用到的属性】
(一)需求描述
今天来个好玩的,我要在本地操作远程Windows服务器[10.34.130.62]上的计算器计算 (1+2+4)*2 的结果并返回。
(二)实现流程(其中一种)
【Windows】:
1. 10.34.130.62打开计算器(多种方式)
2. 10.34.130.62利用Windows API相关命令(参见帮助文档-命令执行引擎)进行计算
3. 10.34.130.62取得计算结果
4. 10.34.130.62关闭计算器
(三)Lua脚本实现(基于/article/7784798.html)
--脚本入口和出口函数EnterBegin()
function EnterBegin()
--连接到服务器 10.34.130.62和10.34.130.44
ExecCommand("127.0.0.1:connect_one_server{@10.34.130.62@}")
sleep(1000)
ExecCommand("127.0.0.1:get_connect_servers{@all@}")
-----------------------------windows-----------------------
--1. 10.34.130.62打开计算器(多种方式)"C:\\Windows\\System32\\calc.exe"
--ExecCommand("10.34.130.62:win_cmd{@C: && C:\\Windows\\System32\\calc.exe@}")
--ExecCommand("10.34.130.62:open_file{@C:\\Windows\\System32\\calc.exe@}")
ExecCommand("10.34.130.62:open_exe{@C:\\Windows\\System32\\calc.exe|null@}")
sleep(1000)
--2. 10.34.130.62利用Windows API相关命令(参见帮助文档-命令执行引擎)进行计算
--给控件ID为160发送文本 (1+2+4)*2
ExecCommand("10.34.130.62:win_api{@calc|send_text|160|1+2+4@}")
sleep(500)
ExecCommand("10.34.130.62:win_api{@calc|send_text|160|*2@}")
sleep(500)
--点击"="按键ID为121
ExecCommand("10.34.130.62:win_api{@calc|click|121@}")
sleep(500)
--3. 10.34.130.62取得计算结果(由于可能是图片无文本属性所以取得空值)
ExecCommand("10.34.130.62:win_api{@calc|get_text|160@}")
sleep(500)
--模拟键盘输入 Alt+2
--ExecCommand("10.34.130.62:win_api{@calc|send_key|%{2}@}")
--sleep(500)
--模拟键盘输入 Ctrl+H
ExecCommand("10.34.130.62:win_api{@calc|send_key|^{h}@}")
sleep(500)
--点击相对坐标(140,40)
ExecCommand("10.34.130.62:win_api{@calc|click_xy|140|40@}")
sleep(500)
--模拟键盘输入 F1
ExecCommand("10.34.130.62:win_api{@calc|send_key|{F1}@}")
sleep(500)
--4. 10.34.130.62关闭计算器
--ExecCommand("10.34.130.62:kill_proc{@calc@}")
return 1
end
function sleep (a)
local b = 1000000*a
for i=0,b,1
do
a = i
end
return a
end
(四)执行结果截图
【Windows-10.34.130.62】
【Local-Output】
【一些用到的属性】
相关文章推荐
- 服务器集群管理框架从构思到完成(三)高级应用示例:修改远程windows和linux服务器配置文件
- 服务器集群管理框架从构思到完成(二)集群部署配置和基本功能操作
- 服务器集群管理框架高级应用示例(五):自动化测试框架搭建图示
- 分布式缓存技术redis学习(四)——redis高级应用(集群搭建、集群分区原理、集群操作)
- 使用iLO远程管理HP系列服务器英文版操作步骤
- U8 数据库服务器和应用服务器 分离后出现 登陆系统管理 远程组件初始化 失败 解决方案!
- OpenSUSE Leap 42.3下通过Firefox Opera Chromium浏览器直接执行java应用程序(打开java jnlp文件)实现在服务器远程虚拟控制台完成远程管理的方法
- 分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)
- 分布式缓存技术redis学习(四)——redis高级应用(集群搭建、集群分区原理、集群操作)
- telnet远程管理操作及客户机对服务器的远程管理
- 实验四:Telnet远程登录服务器的安装、管理及Telnet客户端的应用
- 分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)
- 分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)
- 分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)
- 使用概要管理工具创建定制概要文件,并在此节点上 创建集群以及在集群服务器中部署应用
- 分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)
- 分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)
- 分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)
- NoSQL数据库之Redis数据库管理六 (Redis的高级应用之事务处理、持久化操作、pub_sub、虚拟内存)