
基于按键精灵的ESS工单批处理的设计与实现.doc
12页基于按键精灵的ESS工单批处理的设计与实现【摘要】随着网络智能化的发展,邯郸联通推出了一项新的通信服 务产品一一号双机,由于当初受理时的纽:漏,产品在带动收入的同时也产 牛了高额的欠费为解决这一问题,要求所有一号双机的同话号码变更为 预付费类型,而这两万多个号码若要人工来完成业务修改就是一项很繁琐 的工作本文通过使用自动化脚本编辑工具一按键精灵,编写批处理脚本, 来使复杂的工作简单化,繁重的工作轻松化,解放双手的同时还提高了工 作效率关键词】按键精灵 批处理 脚本自动输入一、引言2014年中国联通邯郸市分公司启动欠费追缴专项工作,其中大量一号 双机的固话号码最初是按后付费类型受理的,导致示期产生了巨额欠费, 造成公司追缴工作的怵I难,给财务管理的带来严重影响为了能够有效地 遏制此类号码产生欠费,需要将该批号码的后付费类型改为预付费类型 但冃前中国联通电子化销售服务管理系统(ESS系统)已关闭所有批量受 理权限,手工处理一分钟完成2个,每人每天工作8小时,则每天能处理 960个,2万个号码全部处理完毕需要21天的时间,由于需要处理的号码 数量巨大,加之人在长时间集中精力的情况下工作,极易出现差错,并不 能保证操作的准确,因此这种在理想状态下完全靠人工处理是不现实的, 于是考虑通过编写程序实现工单批处理。
二、概述按键精灵是一款模拟鼠标键盘动作的免费软件通过制作脚本,让按 键精灵代替双手自动执行一系列鼠标键盘动作,将工作人员的重复性操作 全部由计算机替代,最人程度地实现业务操作的自动化[1]程序员在按 键精灵中编写基于VBScript.的脚本语言,该脚本可以从Excel表中读取 待受理号码,自动录入ESS系统,并在业务类型中选择预付费类型,最后 填写受理人员、受理人员联系方式、备注信息等内容,确定提交后完成整 个受理过程三、总体设计3.1开发环境操作系统:WIN 7显示器分辨率:1920*1080开发工具:按键精灵2014. 02开发语言:VBScript3. 2实现流程(图1)3. 3关键技术的解决方案关键一:打开和关闭Excel I作表完成打开Excel表的功能可使用Call Plugin. Office. OpenXls插件 命令,该命令只有一个参数,其含义是打开文件的绝对路径信息,参 数的设定只要根据具体情况设定即可例如文件放在D盘根目录下,调用命令可写成[3]:Call Plugin. Office. OpenXls (〃D: \待修改号码・xlsx”)完成关闭Excel表的功能可使用Call Plugin. Office. CloseXls插 件命令,关闭Excel表命令可写成:Call 卩lugin. Office. CloseXls ()关键二:按行读取Excel I作表中的单元格数据,写入ESS系统中的 业务号码文本框。
读取Excel表中某单元格的数据,可使用Plugin. Office・ReadXls 命令,获取读到的数据可写成:t 二卩lugin. Office. ReadXls (a, b, c)参数3代表工作表编号,参数b代表行号,参数c代表列号数据 写入则通过调用SayString命令实现,可写成SayString t,即在指定文 本框中写入Excel表中的数据关键三:鼠标找图找图操作是整个批处理的关键步骤,它决定着自动处理程序执行是否 成功首先,将鼠标要点击的按钮利用按键精灵中的抓抓工具进行截图, 保存成・bmp位图图片,注意截图时要保证图片四个角的像素颜色是一致 的,这样脚本才能准确找到该图其次,将截图上传到该脚本下的附件中 最后,编辑脚本代码,实现找图操作该操作可使用如下命令:FindPic 900, 200, 1330, 250, Attachment: \业务号码.bmp", 0.9, intX, intYIf intX > 0 And intY > 0 ThenMoveTo intX+220, intY+10Delay 1000LeftClick 1在屏幕上900, 200, 1330, 250的范围内查找图片“业务号码・bmp”, 准确度0.9,如果找到该图片,即执行单击操作,在单击操作执行前,可 以增加一个1000毫秒的延迟,以提高脚本运行的有效性。
查找范围四个 值的含义为:左上角X坐标,左上角Y坐标,右下角X坐标,右下角Y坐 标,如欲在整个屏幕范围内进行查找,亦可将查找范围设定为0, 0, 1920, 1080o关键四:遇到意外事件时,脚本自动暂停,并发出警告提示音在脚本运行过程中,有很多意想不到的事情发生,如ESS系统在月初 和月末时运行较缓慢,意外触碰鼠标或键盘等,这些都会导致脚本运行紊 乱,必须经程序员手动执行暂停脚本才能终止在使用以下命令时,可解 决上述问题FindPic 900, 200, 1330, 250, Attachment: \业务号码・bi叩",0.9, intX, intYIf intX > 0 And intY > 0 ThenMoveTo intX+220, intY+10Delay 1000LeftClick 1Delay 1000SayString t Delay 1000ElseMessageBox “找不到业务号码输入框”Delay 1000Call Plugin.0ffice.CloseXls ()End If在执行找图操作时,增加if-else-End If判断语句,如果找到指 定图片,执行写入号码操作,如果未找到指定图片,则弹出警告框,提示 “找不到业务号码输入框”,并关闭Excel表,释放资源,注意在每步执 行前增加一定的延迟,保证响应时间。
关键五:确定循环结构在完成脚本命令的编写后,进行执行一遍的测试,如果测试通过,则 需进行循环语句的编写,以确保脚本在无人值守的情况下,反复执行,最 终实现号码的批处理执行循环命令的语句如下:Dim iFor i=l to 100NextDim语句用来定义变量,参数i表示循环次数;使用For语句可根据 需要设置循环次数,上述语句中脚本可自动执行100次;For语句和Nexl 语句要成对出现,省略号部分是程序运行一遍的命令,这样才能保证循环 语句的正确执行3. 4主要程序清单Dim iCall Plugin. Office. OpenXls (〃D: \待修改号码・xlsx”)For i=l to 100t 二 Plugin. Office. ReadXls (1, i, 1)FindPic 900, 200, 1330, 250, w Attachment: \业务号码・bmp”,0.9, intX, intYIf intX > 0 And intY > 0 ThenMoveTo intX+220, intY+10Delay 1000LeftClick 1Delay 1000SayString tDelay 1000ElseMessageBox “找不到业务号码文本框”Delay 1000Call Plugin. 0ffice.CloseXls ()End IfFindPicO, 0 , 1 9 2 0, 1080, "Attach men t : \ 查询・bmp”, 0. 9, intX, intYIf intX > 0 And intY > 0 ThenMoveTo intX+20, int.Y+5Delay 1000LeftClick 1Delay 6000ElseMess ageBox “找不到查询按钮”Delay 1000Call Plugin. 0ffice.CloseXls ()End IfFindPic 0, 0, 1920, 1080, Attachment: \ 用户业务信息・bmp”,0.9, intX, intYIf intX > 0 And intY > 0 ThenMoveTo intX+20, int.Y+5Delay 1000LeftClick 1Delay 2000ElseMessageBox "找不到用户业务信息选项卡” Delay 1000Call Plugin. Office.CloseXls ()End IfFindPic 330, 300, 760, 450, v Attachment: \ 后付费.bmpv, 0.9,int.X, int.YIf intX > 0 And intY > 0 ThenMoveTo intX+20, intY+5Delay 1000LeftClick 1Delay 2000El seMessageBox “找不到后付费文本框”Delay 1000Call Plugin. Office.CloseXls ()End IfFindPic 330, 300, 760, 450, w Attachment: \准预付费・bi叩”,0.9, int.X, intYIf intX > 0 And intY > 0 ThenMoveTo intX+20, intY+5Delay 1000LeftClick 1Delay 2000ElseMessageBox “找不到准预付费选项”Delay 1000Call 卩lugin. Office. CloseXl s ()End IfFindPic 1480, 650, 1920, 693, n Attachment: \ 申请联系人・bmp”, 0.8, intX, intYIf intX > 0 And intY > 0 ThenMoveTo intX+150, intY+10Delay 1000LeftClick 1 Delay 1000SayStringDelay 1000ElseMessageBox "找不到申请联系人文本框”Delay 1000Call Plugin. 0ffice.CloseXls ()End IfFindPicSIO, 680, 730, 730, " Attachment: \ 申请联系信息.bmp",0.9, intX, intYIf intX > 0 And intY > 0 ThenMoveTo intX+150, intY+20Delay 1000LeftClick 1Delay 1000SayStringDelay 1000ElseMessageBox “找不到中请联系信息文本框” Delay 1000Call 卩lugin. Office. CloseXls ()End IfFindPic 340, 800, 1340, 880, Attachment: \业务备注・bi叩”,0.9, intX, intYIf intX > 0 And intY > 0 ThenMoveTo intX+150, intY+20Delay 1000LeftClick 1Delay 1000SaySt.ri ng “市场部通知改预付费”Delay 1000ElseMessageBox "找不到业务备注文本域” Delay 1000Call 卩lugin. Office. CloseXls ()End IfFin d P i c 0 , 0 , 1 9 2 0, 1080,n At。
