103 lines
2.6 KiB
AutoHotkey
103 lines
2.6 KiB
AutoHotkey
; Click test for Mosis Designer
|
|
#Requires AutoHotkey v2.0
|
|
|
|
; Configuration
|
|
WINDOW_TITLE := "Mosis Designer"
|
|
PHONE_WIDTH := 540
|
|
PHONE_HEIGHT := 960
|
|
|
|
; Output file
|
|
outFile := A_ScriptDir . "\click_test_result.txt"
|
|
if (FileExist(outFile))
|
|
FileDelete(outFile)
|
|
|
|
Log(msg) {
|
|
global outFile
|
|
FileAppend(msg . "`n", outFile, "UTF-8")
|
|
}
|
|
|
|
Log("=== Click Test ===")
|
|
Log("Time: " . FormatTime(, "yyyy-MM-dd HH:mm:ss"))
|
|
|
|
; Find window
|
|
hwnd := WinExist(WINDOW_TITLE)
|
|
if (!hwnd) {
|
|
Log("ERROR: Window not found")
|
|
ExitApp(1)
|
|
}
|
|
|
|
Log("Window found: " . hwnd)
|
|
|
|
; Get window info
|
|
WinGetPos(&winX, &winY, &winW, &winH, hwnd)
|
|
Log("Window position: X=" . winX . " Y=" . winY)
|
|
Log("Window size: W=" . winW . " H=" . winH)
|
|
|
|
; Calculate DPI scale factor
|
|
; Expected phone size is 540x960
|
|
; Window has some decorations, estimate ~16 pixels width, ~40 height for title+borders
|
|
expectedW := 540 + 16
|
|
expectedH := 960 + 40
|
|
scaleX := winW / expectedW
|
|
scaleY := winH / expectedH
|
|
Log("Estimated scale X: " . scaleX . " Y: " . scaleY)
|
|
|
|
; Use average scale (should be similar for both)
|
|
scale := (scaleX + scaleY) / 2
|
|
Log("Using scale factor: " . scale)
|
|
|
|
; Calculate client area offset (estimate title bar and borders scaled)
|
|
titleBarHeight := Round(31 * scale)
|
|
borderWidth := Round(8 * scale)
|
|
Log("Estimated title bar: " . titleBarHeight . "px, border: " . borderWidth . "px")
|
|
|
|
; Client area start
|
|
clientX := winX + borderWidth
|
|
clientY := winY + titleBarHeight
|
|
Log("Client area start: X=" . clientX . " Y=" . clientY)
|
|
|
|
; Function to convert phone coords to screen coords
|
|
PhoneToScreen(phoneX, phoneY) {
|
|
global clientX, clientY, scale
|
|
return {
|
|
x: Round(clientX + phoneX * scale),
|
|
y: Round(clientY + phoneY * scale)
|
|
}
|
|
}
|
|
|
|
; Activate window
|
|
WinActivate(hwnd)
|
|
Sleep(200)
|
|
|
|
Log("")
|
|
Log("=== Performing Click Test ===")
|
|
|
|
; Click on Phone app icon (first app in grid)
|
|
; Position from home.rml layout: approximately (67, 120) in phone coords
|
|
phonePos := PhoneToScreen(67, 120)
|
|
Log("Phone app: phone(67,120) -> screen(" . phonePos.x . "," . phonePos.y . ")")
|
|
|
|
; Perform click
|
|
Click(phonePos.x, phonePos.y)
|
|
Log("Click sent!")
|
|
|
|
Sleep(1000)
|
|
Log("Test complete - check if screen changed to Dialer")
|
|
|
|
; Also try clicking messages in dock for comparison
|
|
Log("")
|
|
Log("=== Second Click Test (Messages Dock) ===")
|
|
; Dock is at bottom, approximately y=920 in phone coords
|
|
; Messages is second item, approximately x=202
|
|
msgPos := PhoneToScreen(202, 920)
|
|
Log("Messages dock: phone(202,920) -> screen(" . msgPos.x . "," . msgPos.y . ")")
|
|
|
|
Click(msgPos.x, msgPos.y)
|
|
Log("Click sent!")
|
|
|
|
Sleep(500)
|
|
Log("")
|
|
Log("=== Test Complete ===")
|
|
|
|
ExitApp(0)
|