也是工作原因,每月初都要給客戶申報個稅。我們申報個稅比較簡單,沒有太復雜的操作,基本上是復制上個月的數據就可以了。所以,也是機械重復的操作。
使用按鍵精靈編寫了一個腳本,這樣就可以幫助我完成這個任務。注意屏幕保護,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 '這里是跳轉到下一個循環操作