Bir pencerede bir klik taklit çalışıyorum. Şu anda başarıyı şöyle Bunu yaparken sahip (Python kullanıyorum, ancak genel win32 için geçerli olmalıdır): Bu iyi çalışırwin32: fare hareketi simüle etmeden bir tıklama simüle?
win32api.SetCursorPos((x,y))
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,0,0)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,0,0)
. Ancak, fareyi manuel olarak hareket ettirirken tıklama olursa, imleç konumu atılır. Fareyi hareket ettirmeden, belirli bir (x,y)
koordinatına doğrudan tıklama göndermek için herhangi bir yol var mı? Ben pek şans ile aşağıdaki gibi bir şey denedim:
nx = x*65535/win32api.GetSystemMetrics(0)
ny = y*65535/win32api.GetSystemMetrics(1)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN | \
win32con.MOUSEEVENTF_ABSOLUTE,nx,ny)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP | \
win32con.MOUSEEVENTF_ABSOLUTE,nx,ny)
koordinatları .. PostMessage mutlak olanlar veya pencereye göreli olanlar olarak iletecektir? Aslında zaten hwnd alabilir, ama sadece 'benim Coords tercüme ben' left' ve gelen 'top' var (x - - sol y üst)', 'GetWindowRect' doğru yerde tıklayın vermedi. – Claudiu
Ah, gerçekten. Mutlak tıklama konumunu ilgili göreceli olarak dönüştürmeniz gerekir. Kullanım ScreenToClient (hWnd, lpPoint) PostMessage – Andrew
ah ty önce, ben buna çalışacağım! Bu durumda postmessage ve sendmessage arasında herhangi bir fark var mı? – Claudiu