也是工作原因,每月初都要给客户申报个税。我们申报个税比较简单,没有太复杂的操作,基本上是复制上个月的数据就可以了。所以,也是机械重复的操作。
使用按键精灵编写了一个脚本,这样就可以帮助我完成这个任务。注意屏幕保护,WPS画报等可能干扰按键精灵的操作。
1 '注意: 2 '1.我使用的电脑是联想IdeaPad Yoga13,屏幕分辨率为1600X900,按键精灵的点击操作是根据屏幕坐标的,用其他分辨率电脑会不能正常点击。另外,注意自己机器的配置和性能,可能需要修改delay的时间。适合自己电脑才行。 3 '2.因为单位切换窗口默认显示前面4家,所以,前面4家我们手动申报。(主要是我懒没写这部分代码:前4次用鼠标坐标定位点击就能切换,用变量记录运行4次后来切换到下面的点击下拉滑动条末端按钮(不是滑块)方式) 4 5 '运行过程: 6 '1.(已经登录了一家单位之后的界面状态)正常打开的程序界面,点击单位管理,在弹出的单位列表中选择单位(有一个判断,是否已经申报,是则继续点击切换下一家),点击进入, 输入密码,点击登录。 7 '2.进入界面,点击“综合所得申报”,点击“填写”,在提示窗口依次点击按钮,最后“复制上月数据”,(这里有一个判断上月是否有数据,有则复制,无则切换单位)。复制完毕, 点击“返回”。 8 '3.点击“税款计算”,等待完成,点击“申报表报送”,点击“发送”,等待发送完成,点击“获取反馈”。然后,点击“单位管理”,进入下一个循环。 9 10 '使用方法: 11 '1.先下载安装按键精灵,http://www.anjian.com/。把代码复制到按键精灵脚本编辑框里; 12 '2.需要首先设置xuhao,mima等变量,就是从哪家开始,就把它的序号赋值给xuhao,目的是通过cishu = (xuhao-4)*2,计算出切换单位时,下滑块的点击次数。xuhao必须大于等于5,因为单位切换窗口默认显示前面4家。-_-|| 13 '3.另外可以设定一个accoutmax值,申报次数等于accoutmax时,就弹出对话框,告诉设置的次数已到,还要不要继续。到哪家停止,就把他的序号-4得到的值赋值给accout就行。 14 '4.设置完,按键精灵为调试模式。然后就可以首先登录任意一家,进入软件正常首页窗口。然后F10启动程序,然后就会自动切换到第xuhao家,依次执行,直到次数等于accoutmax时弹出窗口提醒。(为啥这么麻烦,因为程序写得简单:程序复杂,人简单;程序简单,人复杂。-_-||) 15 16 Dim xuhao, cishu, accoutmax, accout, mima 17 xuhao = 5 '自动脚本处理的第一家公司序号,目前默认为5,因为前4家不用程序申报。(xuhao值需要手动修改,其实可以使用窗口的,汗-_-||,) 18 cishu = (xuhao-4)*2 '计算出切换单位时,需要点击滑动条末端的次数 19 accoutmax = 20 '执行的最大遍数,根据你电脑软件添加的单位数量实际情况-4设置。 20 mima = "Aa123456" '这里根据自己单位情况,设置统一的密码 21 22 23 '定义进入循环的开头,密码框输入操作开始。既是程序模拟操作的开头,也是以后每次循环操作的开头。 24 Rem back 25 26 '下面这里仅仅是利用弹出窗口暂停执行,让我注意到已经多少次,是不是要停止了。(没有加入自动停止功能,将就用吧,-_-||) 27 If accout = accoutmax Then 28 MsgBox"已经"&accout&"次" 29 End If 30 31 '下面这个是点击企业管理,准备切换 32 Delay 3000 '增加反应时间 33 34 MoveTo 1435, 43 35 Delay 500 36 LeftClick 1 37 Delay 475 38 Delay 6 39 Delay 1003 40 Delay 7 41 Delay 1007 42 Delay 8 43 44 '移动到滑条的最下端的按钮上 45 MoveTo 1228, 557 46 Delay 1007 47 Delay 5 48 Delay 474 49 Delay 5 50 Delay 474 51 52 '开始模拟鼠标点击滑条末端 53 LeftClick cishu / 2 '分两次进行点击滑条末端的操作,防止系统跟不上。 54 Delay 2000 55 LeftClick cishu/2 '分两次进行点击滑条末端的操作,防止系统跟不上。 56 57 '切换单位完成,cishu初始值在最开始赋值为cishu = (xuhao-4)*2,xuhao默认5,就是点击2次是到第5家。现在要加上2,为下一次切换做准备。 58 cishu = cishu + 2 'cishu是鼠标点击次数,为下一次切换做准备。 59 accout = accout+1 '计数开始有值为1.每循环一次加1。 60 61 Rem clickAgain 62 Dim xuanze, xuanze2 63 xuanze = GetPixelColor(930, 544) 64 xuanze2 = GetPixelColor(907,543) 65 If xuanze = "333333" and xuanze2= "333333" Then 66 '==========判断是否已经申报,如果是,则继续点击2下,========== 67 LeftClick 2 '相当于提前完成一个切换,所以,下面要为下一家做准备。 68 cishu = cishu + 2 'cishu是鼠标点击次数,为下一次切换做准备。 69 accout = accout+1 '计数开始有值为1.每循环一次加1。 70 71 Goto clickAgain '如果已经报过,点击完,继续跳回检测 72 73 End If 74 75 '移动到“进入”上,点击进入 76 MoveTo 1186, 543 77 Delay 657 78 LeftClick 1 79 Delay 243 80 Delay 7 81 Delay 1005 82 Delay 5 83 Delay 1007 84 Delay 5 85 '======================================== 86 '进入界面后,开始输入密码登录 87 '======================================== 88 89 Delay 125 '延迟是为了等待电脑的响应。 90 '点击密码输入框,并输入密码,下面操作是模拟手工输入,“Aa123456”. 91 MoveTo 710, 471 92 Delay 726 93 LeftClick 1 94 Delay 85 95 96 97 '输入密码 98 Call Plugin.Sys.SetCLB(mima) '把mima变量设置到粘贴板上,下面使用模拟ctl+v的方式粘贴 99 KeyDown 17, 1 100 KeyPress 86, 1 101 KeyUp 17, 1 102 KeyUp 86,1 103 104 '关闭键盘按钮 105 MoveTo 978, 656 106 Delay 219 107 LeftClick 1 108 109 '点击登录按钮 110 MoveTo 846, 639 111 Delay 266 112 LeftClick 1 113 114 Delay 6000'增加反应时间 115 Delay 6000'增加反应时间 116 Delay 6000'增加反应时间 117 Delay 6000'增加反应时间 118 119 '点击投诉界面的“确定”按钮 120 MoveTo 802, 524 121 Delay 1009 122 123 124 Delay 82 125 LeftClick 1 126 Delay 896 127 Delay 5 128 Delay 896 129 130 '点击“综合所得”项目 131 MoveTo 111, 221 132 Delay 1009 133 Delay 8 134 Delay 82 135 LeftClick 1 136 Delay 896 137 Delay 5 138 139 '点击“填写”按钮 140 MoveTo 1469, 284 141 Delay 1007 142 Delay 4 143 144 LeftClick 1'点击 145 Delay 296 146 Delay 2 147 148 '======================== 149 'MsgBox "标记1" 150 '======================== 151 152 153 Delay 785 154 Delay 7 155 156 '点击第一个提示的“确定”按钮 157 MoveTo 809, 529 158 Delay 886 159 LeftClick 1 160 Delay 86 161 Delay 3 162 163 164 '======================== 165 '点击第二个提示“确定”按钮 166 '======================== 167 MoveTo 765, 507 168 Delay 706 169 LeftClick 1 170 Delay 315 171 Delay 2 172 173 '======================== 174 'MsgBox "选择复制上个月" 175 '======================== 176 MoveTo 786, 395 177 Delay 836 178 LeftDown 1 179 Delay 49 180 Delay 5 181 Delay 41 182 LeftUp 1 183 184 '增加等待时间 185 Delay 2000 186 187 '增加判断,如果遇到不用申报个税的单位,没有历史工资记录,那么“选择复制上个月”就是灰色的,根据屏幕颜色会有一个判断,如果没有上月记录,就跳出后面操作,直接进行切换单位操作。 188 189 Dim fuzhi, fuzhi2 190 fuzhi = GetPixelColor(592, 414) 191 fuzhi2 = GetPixelColor(600,415) 192 If fuzhi = "F48542" and fuzhi2= "F48542" Then 193 '==========以下是按键精灵录制的内容-关闭窗口,到达选择单位窗口========== 194 MoveTo 1062, 345 195 Delay 780 196 LeftClick 1 197 Delay 110 198 Delay 2 199 200 Goto back '如果,不用申报个税,就跳回循环的开头,切换下一家。 201 202 End If 203 204 '======================== 205 'MsgBox "确认复制" 206 '======================== 207 MoveTo 771, 544 208 Delay 967 209 Delay 6 210 Delay 69 211 LeftClick 1 212 Delay 863 213 Delay 5 214 215 '======================== 216 'MsgBox "标记3" 217 '======================== 218 MoveTo 1012, 584 219 Delay 895 220 LeftClick 1 221 Delay 37 222 Delay 1 223 Delay 997 224 225 '======================== 226 'MsgBox "标记5" 227 '======================== 228 MoveTo 264, 195 229 Delay 991 230 Delay 5 231 Delay 133 232 LeftClick 1 233 234 MoveTo 724, 152 235 Delay 581 236 LeftClick 1 237 Delay 343 238 Delay 6 239 Delay 1003 240 241 242 MoveTo 725, 148 243 Delay 1010 244 Delay 4 245 Delay 1006 246 Delay 5 247 Delay 1009 248 Delay 5 249 Delay 1006 250 Delay 4 251 Delay 1006 252 Delay 5 253 Delay 1008 254 Delay 5 255 Delay 1007 256 Delay 5 257 Delay 1006 258 Delay 5 259 Delay 1010 260 Delay 5 261 Delay 1007 262 Delay 5 263 Delay 1016 264 Delay 4 265 Delay 1008 266 Delay 5 267 Delay 1009 268 Delay 5 269 Delay 1009 270 Delay 4 271 Delay 1264 272 Delay 1 273 Delay 754 274 Delay 5 275 Delay 1008 276 Delay 5 277 Delay 1007 278 Delay 4 279 280 MoveTo 1399, 155 281 Delay 534 282 LeftClick 1 283 Delay 676 284 Delay 1 285 Delay 781 286 Delay 18 287 288 '发送申报 289 MoveTo 1507, 258 290 Delay 1055 291 LeftClick 1 292 Delay 22 293 Delay 3 294 Delay 29 295 LeftUp 1 296 Delay 896 297 Delay 5 298 Delay 1007 299 Delay 5 300 Delay 1009 301 Delay 5 302 Delay 1009 303 Delay 5 304 Delay 1012 305 Delay 4 306 Delay 1008 307 Delay 5 308 Delay 1007 309 Delay 5 310 Delay 1008 311 Delay 5 312 Delay 1010 313 Delay 4 314 Delay 1010 315 Delay 4 316 Delay 1010 317 Delay 5 318 Delay 1012 319 Delay 4 320 Delay 1010 321 Delay 5 322 Delay 1009 323 Delay 4 324 Delay 1010 325 Delay 5 326 Delay 1008 327 Delay 7 328 Delay 1286 329 Delay 2 330 Delay 781 331 332 '获取反馈 333 '防止系统慢,跳过获取反馈,再加3秒。 334 Delay 3000 335 LeftClick 1 336 Delay 23 337 Delay 4 338 Delay 24 339 Delay 911 340 Delay 5 341 Delay 1009 342 Delay 16 343 344 Goto back '这里是跳转到下一个循环操作