想用SendMessage函式寫一個后臺模擬按鍵(指運行時系結的視窗可以最小化), 按下F10啟動,系結某個視窗,然后一直按空格鍵,每次按鍵間隔時間 可以在視窗自己調整,直到按下F12停止。按鍵部分很簡單,可是自己不知道怎么用F10啟動和F12停止回圈退出。請教各位下。先謝謝
uj5u.com熱心網友回復:
自己頂一個先uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
你這個程式(不是系結的視窗)有沒有最小化?如果沒有最小化,檢測到按鍵F10就開始回圈,回圈中不斷判斷一個標志變數,如果標志為真就退出回圈。回圈中還要不斷回應系統訊息,以便有按鍵訊息F12時可以執行。
檢測到按鍵F12改變標志變數的值為真。
如果你本身的程式也要最小化,可能需要Hook來檢測按鍵F10和F12。
uj5u.com熱心網友回復:
http://blog.csdn.net/love3s/article/details/7851887uj5u.com熱心網友回復:
謝謝樓上提供的思路,現在我一啟動,軟體視窗就不回應了,不知道什么鬼
uj5u.com熱心網友回復:
回圈中要不斷回應系統訊息。你是用什么來編程?
uj5u.com熱心網友回復:
否則長的回圈會使界面僵住。uj5u.com熱心網友回復:
用VC6
uj5u.com熱心網友回復:
http://www.autohotkey.comuj5u.com熱心網友回復:
如果你用的是回圈,就需要在回圈內放一個sleep陳述句,讓系統有反應時間。
uj5u.com熱心網友回復:
不回應是因為訊息回圈寫在了主執行緒里了吧,一啟動就在那一直做訊息的回圈,主界面就會卡死uj5u.com熱心網友回復:
在 死回圈 處 加
void DoEvents()
{
MSG msg;
// Process existing messages in the application's message queue.
// When the queue is empty, do clean up and return.
while (::PeekMessage(&msg,NULL,0,0,PM_NOREMOVE))
{// has msg
if (!AfxGetThread()->PumpMessage()) break;
}
}
uj5u.com熱心網友回復:
注冊系統熱鍵RegisterHotKeyuj5u.com熱心網友回復:
用注冊系統熱鍵的方式最合理。注冊F10為啟動鍵,F12為停止鍵。一定要注意,發送按鍵的POSTMESSAGE之類的一定要放在作業執行緒中,否則會占住主執行緒,是什么都干不來了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/121842.html
標籤:基礎類
下一篇:求推薦個跨平臺界面開發工具
