[問題] 想要定時傳送快速鍵指令給另一個程式

看板C_and_CPP (C/C++)作者 (^(oo)^ 早點睡!!)時間12年前 (2014/02/08 02:54), 編輯推噓2(207)
留言9則, 5人參與, 最新討論串1/1
請問如果我想要寫一支程式 他會去執行另一個程式的快速鍵(Ctrl+X)該如何做呢? 目前我已經可以用FindWindow()抓到另外一支程式的控制權 而且可以用::SendMessage去執行一些指令 如關閉程式, 視窗最大化最小化 但是我試了很久就是沒辦法做到讓他執行快速鍵指令(Ctrl+X) 拜託知道的大大們提點我一下 感激不進 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.129.19.190

02/08 04:05, , 1F
你應該需要鍵盤訊息 WM_KEY* 系列, 特別是 WM_KEYDOWN
02/08 04:05, 1F

02/08 04:06, , 2F
WM_KEYDOWN 沒反應的話可試 WM_KEYUP, 或者兩者都送
02/08 04:06, 2F

02/08 04:10, , 3F
唔, 發現你要組合鍵...那依序扔這樣的四個訊息過去看看:
02/08 04:10, 3F

02/08 04:10, , 4F
Ctrl KEYDOWN→X KEYDOWN→X KEYUP→Ctrl KEYUP
02/08 04:10, 4F
我試了 還是不行ㄟ, 以下是我的程式碼 ::SendMessage(*pDisplayWnd, WM_KEYDOWN, VK_CONTROL, 0); ::SendMessage(*pDisplayWnd, WM_KEYDOWN, 0x58, 0); ::SendMessage(*pDisplayWnd, WM_KEYUP, 0x58, 0); ::SendMessage(*pDisplayWnd, WM_KEYUP, VK_CONTROL, 0); ※ 編輯: wasipilarn 來自: 220.129.19.190 (02/09 00:17)

02/09 01:02, , 5F
每個 SendMessage 中間都加 Sleep(200) 試試
02/09 01:02, 5F

02/09 01:30, , 6F
試了Sleep也是不行
02/09 01:30, 6F

02/09 01:31, , 7F
大小寫x也都試過了
02/09 01:31, 7F

02/09 01:40, , 8F
try WM_HOTKEY ?
02/09 01:40, 8F

02/10 10:37, , 9F
SendInput
02/10 10:37, 9F
文章代碼(AID): #1IzIlTXJ (C_and_CPP)
文章代碼(AID): #1IzIlTXJ (C_and_CPP)