Last active
February 29, 2024 10:26
-
-
Save leshikus/26acb095a03145be0303539ce0a4f595 to your computer and use it in GitHub Desktop.
Fill Workday timesheets (Chrome, F11 for fullscreen, windows settings: 1980x1080, 175% scaling)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#Requires AutoHotkey v2.0 | |
waitForPageLoad(x, y, color, attempts) | |
{ | |
Loop attempts | |
{ | |
sleep(200) | |
Loaded := PixelGetColor(x, y) | |
;MsgBox("Wait for " . color . " Get " . Loaded) | |
if Loaded = color | |
Return | |
} | |
MsgBox("Wait for page load -- page did not load") | |
Exit ; we want to terminate in case of timeout | |
} | |
fillSingleDay(day_w, start1, end1, start2, end2, delay) | |
{ | |
send("^{Home}") ; Make sure the page is in beginning | |
; click on Sunday -- it always has the same position | |
sleep(delay) | |
send("^fSo.,{Enter}") | |
sleep(delay) | |
send("{Esc}") | |
sleep(delay) | |
send("{Enter}{Enter}") | |
sleep(delay) | |
loop day_w | |
{ | |
send("{Right}") | |
sleep(delay) | |
} | |
loop 3 | |
{ | |
send("{Tab}") | |
sleep(delay) | |
} | |
sendtext(start1) | |
sleep(delay) | |
send("{Tab}") | |
sleep(delay) | |
sendtext(end1) | |
loop 5 | |
{ | |
send("{Tab}") | |
sleep(delay) | |
} | |
sendtext(start2) | |
sleep(delay) | |
send("{Tab}") | |
sleep(delay) | |
sendtext(end2) | |
sleep(delay) | |
send("{Tab}") ; to move out of text input field | |
sleep(delay * 2) | |
;exit | |
} | |
#HotIf WinActive("Enter Time - Workday - Google Chrome ahk_class Chrome_WidgetWin_1") | |
!a::{ | |
start1 := "10" | |
end1 := "14" | |
start2 := "15" | |
end2 := "19" | |
delay := 300 | |
sleep(delay) | |
send("^{Home}") ; Make sure the page is in beginning | |
sleep(delay) | |
send("^fActions") | |
sleep(delay) | |
send("{Esc}") | |
sleep(delay) | |
send("{Enter}{Enter}") | |
sleep(delay) | |
send("{Home}") | |
sleep(delay) | |
send("{Enter}") ; Select "Enter time" | |
waitForPageLoad(74, 1048, "0xF99F2A", 50) ; wait for orange OK button to appear at the bottom left, 10 sec | |
sleep(delay * 2) | |
click(800, 150) ; this great tool maximizes the window only after visiting its bottom | |
sleep(delay * 2) | |
send("^{End}") | |
sleep(delay) | |
fillSingleDay(1, start1, end1, start2, end2, delay) | |
fillSingleDay(2, start1, end1, start2, end2, delay) | |
fillSingleDay(3, start1, end1, start2, end2, delay) | |
fillSingleDay(4, start1, end1, start2, end2, delay) | |
fillSingleDay(5, start1, end1, start2, end2, delay) | |
MsgBox("You are awesome") | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment