1 寫在前面
全國第七次人口普查在魔幻之年的十月份開始了,本次人口普查和2010年的有很大不同,國家統計局制作了一個錄入資訊的小程式用來錄入各種資訊,對于大多數需要接受普查的大眾來說,用手機掃碼就可以完成資訊填寫,十分放便,但是對于各位普查員,普查指導員,我們需要用手一個個填寫戶主底冊,實在是非常麻煩,
作為跳一跳輕松10W分的玩家(有空我把跳一跳外掛的代碼也放上來,)錄入戶主姓名底冊這件事情肯定是要,,,,使用電腦批量自動化錄入啦
2 作業環境
使用windows電腦 按鍵精靈2014版 有滑鼠有螢屏,
安裝企業微信電腦版,登錄人口普查員賬號,
我自己的電腦是華為matebook13
3總體流程
總體流程非常簡單,大致就是
1資訊匯入 錄入的戶主姓名底冊資訊做成放便呼叫的EXCEL表,或者匯入按鍵精靈的陣列
2呼叫按鍵精錄入姓名底冊
3呼叫按鍵精靈截圖插件區域截屏保存
4回到2繼續錄入下一個戶主底冊
4資訊匯入
資訊匯入非常簡單,如果按鍵精靈可以呼叫讀取EXCEL表,那就直接調讀EXCEL表的函式就可以,但是我的環境下呼叫這個函式就會報錯,所以我將資訊匯入到按鍵精靈的陣列中,

(所有資訊都已經隱去)由于不涉及任何港澳臺人員,出生死亡人員都可以后續修改,因此此處只填寫戶主姓名,戶口在本地,不在本地,總人數,電話等資訊,新建了陣列用于儲存這些資訊,儲存方式是直接從EXCEL來的,
5錄入戶主姓名底冊
先貼一個按鍵精靈作業界面,

電腦版小程式直接放左上角,按鍵精靈在中間,右下角放微信檔案傳輸,用于遠程訊息報送,粘貼文本資訊,遠程控制停止啟動,遠程報送bug等,
下面不多bb直接貼按鍵精靈代碼,
Rem Start1
//程式從此處開始,
i = 0
//程式開始的陣列下標
k = 1.75
//k螢屏乘倍數,我螢屏開的是1.75倍放大,華為2K屏,所以所有使用抓抓抓到的像素點都要×1.75
Rem Start
//rem start是后續起始位置
//Goto kkk
//Goto ooo
MoveTo 237 * k, 686 * k
//準備點擊新增
Delay 1000
IfColor 237 * k, 686 * k, “F36328”, 0 Then
TracePrint “點擊新增,此處正常”
Delay 200
LeftClick 1
Delay 500
LeftClick 1
Delay 200
LeftClick 1
Delay 100
//多次點擊新增防止卡頓
Else
TracePrint “此處不正常,退出”
GetColor = GetPixelColor(237 * k, 686 * k)
TracePrint GetColor
EndScript
//新增位置中顏色不對應,退出腳本
End If
Delay i70+15500
//此處是點擊新增后需要等待的時間,錄入的人數與延遲成近似線性關系,15.5秒是一個大概的保護性延遲,
//i70的70也含有保護性成分,就是防止這個界面刷不出來,
MoveTo 124 * k, 436 * k
LeftClick 1
Delay 200
LeftClick 1
Delay 200
Zhufangdanyuan = A(i)
TracePrint Zhufangdanyuan
//SayString Zhufangdanyuan
//輸入住房單元
//住房單元有漢字時不能正常輸入,需要先拷貝到微信中在拷貝回來,如開頭作業圖所示,
MoveTo 1018 * k, 687 * k
LeftClick 1
//TracePrint Zhufangdanyuan
SayString Zhufangdanyuan
KeyDown “Ctrl”, 1
KeyDown “A”, 1
Delay 200
KeyUp “A”, 1
KeyUp “Ctrl”, 1
KeyDown “Ctrl”, 1
KeyDown “C”, 1
Delay 200
KeyUp “C”, 1
KeyUp “Ctrl”, 1
Delay 100
KeyPress “Enter”, 1
MoveTo 124 * k, 436 * k
Delay 100
LeftClick 1
Delay 200
LeftClick 1
KeyDown “Ctrl”, 1
KeyDown “V”, 1
Delay 200
KeyUp “V”, 1
KeyUp “Ctrl”, 1
Delay 500
Delay 200
//上面一段是把資訊從按鍵精靈拷到微信再拷回來,
MoveTo 291 * k, 545 * k
Delay 200
LeftClick 1
Delay 300
//點擊確認新增
MoveTo 156 * k, 311 * k
Delay 300
MouseWheel -10
//滾動,防止例外
Delay 1500
MouseWheel -20
//滾動,防止例外
Delay 700
IfColor 237 * k, 686 * k, “F36328”, 0 Then
//此處判斷頂部藍色
MoveTo 363 * k, 589 * k
LeftClick 1
Else
TracePrint “例外”
EndScript
End If
Delay 390
MoveTo 347 * k, 541 * k
Delay 300
IfColor 347 * k, 541 * k, “EBEBEB”, 0 Then
//判斷錄入戶主姓名底冊的灰色,
MoveTo 347 * k, 541 * k
LeftClick 1
//點擊錄入戶主姓名底冊
Else
TracePrint “例外”
EndScript
End If
Delay 1400
GetColor = GetPixelColor(246k,108k)
TracePrint GetColor
//取色,這個顏色有的時候會不一樣,很煩,現場調一下吧
MoveTo 246k,108k
Delay 500
IfColor 246k,58k , “F36328”, 0 Then
MoveTo 210 * k, 265 * k
Delay 200
LeftClick 1
//點擊戶主姓名底冊型別
Else
TracePrint “例外”
EndScript
End If
Delay 500
MoveTo 309 * k, 537 * k
Delay 200
IfColor 309 * k, 537 * k , “EBEBEB”, 0 Then
MoveTo 309 * k, 537 * k
Delay 200
LeftClick 1
//點擊住戶
Else
TracePrint “例外”
EndScript
End If
Delay 500
MoveTo 149 * k, 346 * k
Delay 200
MouseWheel 20
//正數表示向上滾動
Delay 1300
MoveTo 170 * k, 326 * k
MouseWheel -3
//在錄入頁滾動來初始化
LeftClick 1
Delay 200
LeftClick 1
Delay 1300
MoveTo 1018 * k, 687 * k
LeftClick 1
TextName = mName(i)
TracePrint TextName
SayString TextName
//這里在輸入姓名,同樣,由于是漢字沒法直接用,需要拷微信再拷回來,
KeyDown “Ctrl”, 1
KeyDown “A”, 1
Delay 200
KeyUp “A”, 1
KeyUp “Ctrl”, 1
KeyDown “Ctrl”, 1
KeyDown “C”, 1
Delay 200
KeyUp “C”, 1
KeyUp “Ctrl”, 1
Delay 100
KeyPress “Enter”, 1
MoveTo 47 * k, 323 * k
Delay 100
LeftClick 1
Delay 200
LeftClick 1
KeyDown “Ctrl”, 1
KeyDown “V”, 1
Delay 200
KeyUp “V”, 1
KeyUp “Ctrl”, 1
Delay 500
SumNum = mSum(i)
If SumNum = “1” Then
MoveTo 139 * k, 537 * k
Delay 100
LeftClick 1
Delay 200
LeftClick 1
End If
If SumNum = “2” Then
MoveTo 251 * k, 537 * k
Delay 100
LeftClick 1
Delay 200
LeftClick 1
End If
If SumNum = “3” Then
MoveTo 332 * k, 537 * k
Delay 100
LeftClick 1
Delay 200
LeftClick 1
End If
TracePrint “總人數”+SumNum
//M5總人數
Delay 200
Rem kkk
MoveTo 311 * k, 396 * k
LeftClick 1
Delay 200
MoveTo 315 * k, 390 * k
MouseWheel - 3
//即將開始寫本村人數和其他人數
TextHere = inHere(i)
TextNotHere = notHere(i)
If TextHere = “0” Then
MoveTo 88 * k, 191 * k
Delay 100
LeftClick 1
Delay 200
LeftClick 1
End If
If TextHere = “1” Then
MoveTo 167 * k, 191 * k
Delay 100
LeftClick 1
Delay 200
LeftClick 1
End If
If TextHere = “2” Then
MoveTo 251 * k, 193 * k
Delay 100
LeftClick 1
Delay 200
LeftClick 1
End If
If TextHere = “3” Then
MoveTo 342 * k, 191 * k
Delay 100
LeftClick 1
Delay 200
LeftClick 1
End If
//M6本村人數
If TextNotHere = “0” Then
MoveTo 88 * k, 445 * k
Delay 100
LeftClick 1
Delay 200
LeftClick 1
End If
If TextNotHere = “1” Then
MoveTo 167 * k, 445 * k
Delay 100
LeftClick 1
Delay 200
LeftClick 1
End If
If TextNotHere = “2” Then
MoveTo 251 * k, 445 * k
Delay 100
LeftClick 1
Delay 200
LeftClick 1
End If
If TextNotHere = “3” Then
MoveTo 342 * k, 445 * k
Delay 100
LeftClick 1
Delay 200
LeftClick 1
End If
//M7其他人數
Delay 300
MoveTo 231 * k, 309 * k
Delay 100
LeftClick 1
Delay 100
MoveTo 230 * k, 319 * k
Delay 100
MouseWheel - 1
Delay 600
TextUnSure = unSure(i)
If TextUnSure = “0” Then
MoveTo 88 * k, 477 * k
Delay 100
LeftClick 1
Delay 200
LeftClick 1
End If
If TextUnSure = “1” Then
MoveTo 167 * k, 477 * k
Delay 100
LeftClick 1
Delay 200
LeftClick 1
End If
If TextUnSure = “2” Then
MoveTo 251 * k, 477 * k
Delay 100
LeftClick 1
Delay 200
LeftClick 1
End If
If TextUnSure = “3” Then
MoveTo 342 * k, 477 * k
Delay 100
LeftClick 1
Delay 200
LeftClick 1
End If
//M8待定人數
MoveTo 344 * k, 368 * k
Delay 100
LeftClick 1
Delay 100
MoveTo 230 * k, 319 * k
//Delay 100
MouseWheel - 1
Delay 700
MoveTo 75 * k, 518 * k
//Delay 100
LeftClick 1
Delay 100
LeftClick 1
//此處點擊M9未居住在本戶
//Delay 1000
MoveTo 344 * k, 368 * k
//Delay 100
LeftClick 1
Delay 100
MoveTo 230 * k, 319 * k
Delay 100
MouseWheel - 1
Delay 700
MoveTo 86 * k, 589 * k
//Delay 100
LeftClick 1
Delay 100
LeftClick 1
//此處單擊了其他普查小區人數
MoveTo 344 * k, 451 * k
//Delay 100
LeftClick 1
Delay 100
MoveTo 230 * k, 451 * k
//Delay 100
MouseWheel - 2
//
Delay 700
MoveTo 68 * k, 439 * k
Delay 100
LeftClick 1
Delay 100
LeftClick 1
//本村居委會以外人數
MoveTo 280 * k, 304 * k
//Delay 100
LeftClick 1
Delay 100
MoveTo 281 * k, 314 * k
//Delay 100
MouseWheel - 1
//
Delay 700
MoveTo 68 * k, 493 * k
//Delay 100
LeftClick 1
Delay 100
LeftClick 1
//出生人數
MoveTo 318 * k, 362 * k
//Delay 100
LeftClick 1
Delay 100
MoveTo 281 * k, 314 * k
//Delay 100
MouseWheel - 1
//
Delay 800
MoveTo 68 * k, 546 * k
//Delay 100
LeftClick 1
Delay 100
LeftClick 1
//死亡人數
MoveTo 383 * k, 418 * k
//Delay 100
LeftClick 1
//Delay 100
MoveTo 281 * k, 546 * k
Delay 100
MouseWheel - 1
//
Delay 900
MoveTo 68 * k, 575 * k
//Delay 100
LeftClick 1
Delay 100
LeftClick 1
//死亡人數后面一欄是啥我忘了,
MoveTo 331 * k, 475 * k
//Delay 100
LeftClick 1
Delay 100
MoveTo 281 * k, 546 * k
Delay 100
MouseWheel - 2
///
Delay 700
MoveTo 91 * k, 398 * k
//Delay 100
LeftClick 1
Delay 100
LeftClick 1
Textnumber = phoneNum(i)
TracePrint Textnumber
SayString Textnumber
//輸入電話號
///
Delay 700
MoveTo 405 * k, 482 * k
Delay 100
LeftClick 1
Delay 100
MoveTo 281 * k, 546 * k
Delay 100
MouseWheel - 1
//滾動移動位置
///
Delay 700
MoveTo 251 * k, 579 * k
Delay 100
LeftClick 1
Delay 100
//點擊是否自主填報
Delay 900
MoveTo 325 * k, 657 * k
Delay 100
LeftClick 1
Delay 700
//審核
MoveTo 231 * k, 685 * k
Delay 300
LeftClick 1
Delay 1600
MoveTo 299 * k, 441 * k
Delay 200
LeftClick 1
Delay 2100
MoveTo 214 * k, 444 * k
LeftClick 1
Delay 1200
//點擊確認
///
//點擊確認二維碼
MoveTo 302 * k, 455 * k
Delay 1700
LeftClick 1
Delay 2300
MoveTo 255 * k, 355 * k
LeftClick 1
Delay 100
MouseWheel -1
Delay 200
MouseWheel -1
Delay 200
MouseWheel 1
//
Delay 1900
//Rem ooo
//截屏函式
TextName = mName(i)
Zhufangdanyuan = A(i)
Goto waitcc
Rem waitcc
TracePrint “判斷顏色”
MoveTo 262 * k, 266 * k
Delay 200
GetColor = GetPixelColor(262 * k, 266 * k)
TracePrint GetColor
IfColor 262 * k, 266 * k , “60C107”, 0 Then
TracePrint “保存”
Delay 200
Goto picture
//點擊住戶
Else
Delay 200
TracePrint “等待”
Goto waitcc
//寫個回圈,等待小程式碼重繪
//EndScript
End If
Rem picture
//這里是存小程式碼
Path = “D:\你新建一個檔案夾” + Zhufangdanyuan + TextName + “.bmp”
TracePrint Path
Call Plugin.Pic.PrintScreen(0, 0, 415k, 733k,Path)
Delay 1200
//完成第一個
i = i + 1
If i = 17 Then
EndScript
End If
MoveTo 25 * k, 35 * k
Delay 200
LeftClick 1
Delay 200
LeftClick 1
MoveTo 207 * k, 380 * k
Delay 200
MouseWheel - 10
Delay 1000
Goto Start
程式就是這么多,對照小程式界面不難做出來,不出意外的話所有點和顏色都需要重新抓,
另外程式中沒有體現網路容錯之類的,有需要的朋友可以自己填上,
寫于2020 10 16 下午
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/176158.html
標籤:其他
上一篇:python生成4人撲克手牌
