#Requires AutoHotkey v2.0 #SingleInstance Force Persistent FileInstall("akfe-on.ico", A_Temp "\akfe-on.ico") FileInstall("akfe-off.ico", A_Temp "\akfe-off.ico") global IdleTime := 240 ; seconds global Enabled := true global LastX := 0 global LastY := 0 global LastMoveTime := A_TickCount MouseGetPos &LastX, &LastY ;========================================================= ; Tray menu ;========================================================= A_TrayMenu.Delete() A_TrayMenu.Add("Enabled", ToggleEnabled) A_TrayMenu.Add("Set idle time...", SetIdleTime) A_TrayMenu.Add() ; Copypasta submenu CopyMenu := Menu() CopyMenu.Add("Standardpasswort", SetClipboard.Bind("BitteÄndern!")) CopyMenu.Add("Password Ticket", SetClipboard.Bind("Auf Standardpasswort zurückgesetzt.")) CopyMenu.Add("Berechtigt", SetClipboard.Bind("Berechtigung erteilt.")) CopyMenu.Add("Erledigt", SetClipboard.Bind("Erledigt.")) A_TrayMenu.Add("Noodle", CopyMenu) A_TrayMenu.Add() A_TrayMenu.Add("Exit", (*) => ExitApp()) TraySetIcon(A_Temp "\akfe-on.ico") UpdateTray() SetTimer(CheckMouse, 20000) OnMessage(0x404, TrayIconHandler) ;========================================================= ; Mouse mover ;========================================================= CheckMouse() { global Enabled, IdleTime, LastX, LastY, LastMoveTime if !Enabled return MouseGetPos &x, &y if (x != LastX || y != LastY) { LastX := x LastY := y LastMoveTime := A_TickCount return } if (A_TickCount - LastMoveTime >= IdleTime * 1000) { MouseMove x + 1, y, 0 MouseMove x, y, 0 LastMoveTime := A_TickCount } } TrayIconHandler(wParam, lParam, msg, hwnd) { ; Double left click on tray icon if (lParam = 0x203) { ToggleEnabled() } } ;========================================================= ; Tray functions ;========================================================= ToggleEnabled(*) { global Enabled Enabled := !Enabled UpdateTray() } SetIdleTime(*) { global IdleTime result := InputBox("Enter idle time in seconds:", "Mouse mover settings", "w200 h90", IdleTime) if result.Result = "OK" && IsNumber(result.Value) { IdleTime := Integer(result.Value) } } UpdateTray() { global Enabled if Enabled { TraySetIcon(A_Temp "\akfe-on.ico") A_TrayMenu.Check("Enabled") A_IconTip := "ArteKaffee - Active" } else { TraySetIcon(A_Temp "\akfe-off.ico") A_TrayMenu.Uncheck("Enabled") A_IconTip := "ArteKaffee - Disabled" } } ;========================================================= ; Clipboard ;========================================================= SetClipboard(txt, *) { A_Clipboard := txt }