最近要在某個網站上填報資料,填報資料不是問題,但是這個網站每隔幾分鐘就得存檔一次,否則會將你踢出網站,讓填報的資料全化為虛無 ── 這讓我滿困擾的,健忘的我常常忘了按存檔而讓努力化為流水。
為了解決這個問題,我打算用 AutoHotkey幫我點擊存檔按鈕,讓 AutoHotkey 每隔 3 分鐘就去按畫面上的存檔按鈕,這樣就不怕忘記存檔了。
在 AutoHotkey 中讓按下滑鼠左鍵的指令是 Click,很直覺,所以就寫了一個小小的指令讓 AutoHotkey 執行,結果剛開始都按不到按鈕,明明已經用軟體測得螢幕座標了怎麼還是按不到?!後來才知道 AutoHotkey 預設是以活動視窗為基準點,以活動視窗的相對位置來移動滑鼠,我切換個視窗,那基準點數值就變了,難怪一直按錯地方。
找了一下 AutoHotkey 的說明,發現要解決這個問題並不難,加一行 CoordMode, Mouse, Screen命令就 OK 了。這一行指令告訴 AutoHotkey 祇要是滑鼠相關指令都要以視窗絕對座標為移動基準。加了這行指令後果然就依照我的需要來點擊滑鼠左鍵,我不用擔心太久沒按按鈕被網站踢出去了。
整個指令如下:
; 設定滑鼠的操作以畫面絕對座標為主 ; 並設定一個 3 分鐘的 Timer ; 每隔 3 分鐘執行一次 MouseNan 函式 #Persistent CoordMode, Mouse, Screen SetTimer, MouseNan, 180000 ; MouseNan 函式內容 ; 滑鼠移動前先記錄當前位置 ; 然後移動到 1780, 330 並按下滑鼠左鍵, ; 回到原本的位置,按一下左鍵,讓視窗回復為活動視窗 MouseNan: MouseGetPos, xpos, ypos Click, 1780, 330 Click, %xpos% , %ypos% return
附註:因為我填報的是很多欄數字,所以用 AutoHotkey 比較適合,如果填報的是大片文字,那麼 Chrome 使用者可以安裝 Lazarus 套件,它會隨時記錄文字輸入區的內容,當機後還可以恢復,相當方便。