[問題] 關於PostMessage() 模擬出"按住"鍵盤

看板C_and_CPP (C/C++)作者 (ger)時間14年前 (2011/12/23 16:50), 編輯推噓1(104)
留言5則, 3人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) BCB 問題(Question): hi all, 關於PostMessage()的一些問題 不考慮使用SentInput()的情況下 我想對某window送出"按住"的訊息 實驗目標是記事本 WM_KEYDOWN message http://msdn.microsoft.com/en-us/library/windows/desktop/ms646280(v=VS.85).aspx lParam的第30bit代表送出前是按住 當我code如下時, 確實是可行實現 PostMessage(hWindow, WM_CHAR, 'a', 0x4000); PostMessage(hWindow, WM_KEYDOWN, 'a', 0x4000); PostMessage(hWindow, WM_KEYDOWN, '8', 0x4000); 但當我將鍵盤改成arrow key, ENTER key, 卻又沒效果了 PostMessage(hWindow, WM_KEYDOWN, VK_UP, 0x4000); PostMessage(hWindow, WM_KEYDOWN, VK_RETURN, 0x4000); 這樣又變的只會輸入一次, 即使我將後16bit加入repeat次數, 如: PostMessage(hWindow, WM_KEYDOWN, VK_UP, 0x400F); 依然只會輸入一次, 想請問為何數字鍵和英文鍵可實現 換成enter和方向鍵卻沒效果了? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.13.127.181

12/23 17:02, , 1F
EM_KEYUP?
12/23 17:02, 1F

12/23 17:03, , 2F
WM
12/23 17:03, 2F

12/23 17:40, , 3F
EM_KEYUP; 0x0000, 0x4000我都試了, 沒效果
12/23 17:40, 3F

12/23 17:40, , 4F
WM XD
12/23 17:40, 4F

12/23 20:58, , 5F
何不試試 SendMessage ?
12/23 20:58, 5F
文章代碼(AID): #1Ez4301A (C_and_CPP)
文章代碼(AID): #1Ez4301A (C_and_CPP)