我試圖通過SendMessage(..)
方法將鼠標事件發送到窗口中的窗口。爲什麼我的假按鈕按下SendMessage失敗?
我面臨的問題是,郵件似乎不會傳送到我要發送給他們的窗口,即使SendMessage
返回0
,(根據文檔)表示郵件已成功傳送。
我用下面的代碼:
(讓p
是Point
結構和selectedWindow.Handle
有效的句柄到窗口)
int position = ((p.X & 0xFFFF) << 16) | (p.Y & 0xFFFF);
SendMessage(selectedWindow.Handle, 0x0201, new IntPtr(), new IntPtr(position));
SendMessage(selectedWindow.Handle, 0x0202, new IntPtr(), new IntPtr(position));
0x0201
和0x0202
是WM_LBUTTONDOWN
和WM_LBUTTONUP
。
有人能告訴我爲什麼這不起作用嗎?
(編輯:我使用ScreenToClient()
方法將屏幕位置轉換到窗口內的位置是):
首先,請確保座標是相對於
我認爲你是對的。一個已經成爲Windows API一部分的函數可能不會起作用,並且你是第一個注意到的。 ;)(換句話說,如果你問了如何使用這個函數,而不是問它是否可以工作,那麼你的問題標題可能會更準確*) – jalf
@jalf:我沒有用問號結束問題沒有:p! – Kevin