順便說一句,你應該指定什麼樣的環境你的工作中,讓你的代碼一點更詳細。使用SendInput是一種選擇,我不知道你想要做什麼,但我會給你兩個選項來嘗試模擬點擊。像這樣的事會工作(在python我的代碼,但它應該是一樣的想法)罰款:
def leftClick(x=0, y=0):
win32api.SetCursorPos((x,y)) #set the cursor to where you wanna click
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, x, y, 0, 0) #generate a mouse event
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, x, y, 0, 0)
return True
def doubleClick(x=0, y=0):
leftClick(x,y)
leftClick(x,y)
你可以在time.sleep(0.05)睡50毫秒,但它爲我工作,沒有它,我已經在vm中測試過了。
另一種選擇,如果你想在無需移動光標的情況下執行無聲點擊,你可以發送一條消息到你想要點擊的窗口,知道窗口句柄(hwnd),在這裏我假設你將句柄作爲參數。
def leftClick(x=0, y=0, hwnd):
lParam = win32api.MAKELONG(x,y) # create a c long type to hold your click coordinates
win32gui.SendMessage(hwnd, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, lparam) # send a message to the window that the mouse left button is down.
win32gui.SendMessage(hwnd, win32con.WM_LBUTTONUP, 0, lparam) # send a message to the window that the mouse left button is up.
return True
def doubleClick(x=0, y=0, hwnd):
leftClick(x,y, hwnd)
leftClick(x,y, hwnd)
或者您可以發送消息WM_LBUTTONDBLCLK由您決定。
重複:http://stackoverflow.com/questions/5789843/how-i-can-simulate-a-double-mouse-click-on-window-i-khow-handle-on-xy-coord –
你應該提供代碼。 – manuell