怎麼去搶回Hokey? |
尚未結案
|
lcsboy
版主 發表:87 回覆:622 積分:394 註冊:2002-06-18 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: Dr.eye掛上去後, 我寫的AP的Ctrl F1就失效了, 因為被Dr.eye搶走了 有沒有方法可以在 ><" 又不能像以前 > >>< face="Verdana, Arial, Helvetica"> lcsboy 你好: 試試看用 Win32 API RegisterHotKey, UnregisterHotKey 能不能做呢??< > 備註: 我還沒有實際試過,所以也不確定可不可行,你先試試吧< > -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
jessechan
版主 發表:109 回覆:394 積分:254 註冊:2002-04-05 發送簡訊給我 |
|
lcsboy
版主 發表:87 回覆:622 積分:394 註冊:2002-06-18 發送簡訊給我 |
|
jessechan
版主 發表:109 回覆:394 積分:254 註冊:2002-04-05 發送簡訊給我 |
RegisterHotKey 可以讓你在 OS level 註冊 hotkey, 如果使用者在任何地方按下 hotkey 則你的程式可以收到 WM_HOTKEY 的訊息, WParam 為你為這個 hotkey 所訂的 ID, 這可以讓你一次註冊很多個 hotkey, 使用方法如下,
RegisterHotKey(nHandle,nKeyID,0,vkKey);
一般來說 nHandle 為你 Form 的 handle, 如此在這個 Form 的 WndProc 就可以收到 WM_HOTKEY, nKeyID 可以任意給, 但是自己註冊的 ID 不要重複了, 第三個參數是 Modifier, 如果你的 hotkey 要隨著 Shift, Ctrl, Alt 一起的話可以在這裡指定, 最後是所要註冊的 hotkey 的 virtual key code, 可參考 M$DN, 在使用上有一點要注意如果之前其它程式已用 RegisterHotKey 註冊過
則會失敗, 以你這個例子而言, Ctrl-F1 是可以用的, 在程式結束時記得要用 UnregisterHotKey(nHandle,nKeyID);
來釋放系統資源. Jesse Chan
------
Jesse Chan |
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
不知道 Dr.eye 是如何作的,如果它也是用 RegisterHotKey 去作,那當你要求同一個已被別人註冊過的 HotKey 時,會回傳失敗值。
不知各位是否有類似的經驗呢?
如果已被別人用 RegisterHotKey 註冊走了,還能搶得回來嗎? 沒空更新的網頁...
http://big5.to/吃軟也吃硬 C及指標教學,計算機概論,資訊管理導論... http://home.kimo.com.tw/dllee.tw
http://coolsite.to/ushells 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com |
jessechan
版主 發表:109 回覆:394 積分:254 註冊:2002-04-05 發送簡訊給我 |
|
lcsboy
版主 發表:87 回覆:622 積分:394 註冊:2002-06-18 發送簡訊給我 |
不好意思, 這個問題拖了很久, 今晚才找到時間小試一下 在我的AP使用RegisterHotKey把我的Ctrl+1設成呼叫WinRAR好了
1. 在我的AP可以正常使用Ctrl+1把WinRAR叫出來
2. 再掛上Dr.eye, 哈~ 按Ctrl+1不會被Dr.eye搶走了
3. 看一下K.TOP的文(這時正使用IE), 按下Ctrl+1, 啊~~~~ WinRAR跑出來了 > 剛好遇到包兄, 他請我我試試能不能搞 >好玩歸好玩, 言歸正傳:
還有沒有別的方法, 只在我的 >< 怎麼辦 :~~~~
|
lcsboy
版主 發表:87 回覆:622 積分:394 註冊:2002-06-18 發送簡訊給我 |
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
如果你只要自己的 AP 有這個 HotKey,不要影響別人... 我的作法是,在 AP 中放一個 PopupMenu。我們在 PopupMenu 中不是可以建 Item,同時指定其快速鍵嗎?在 PopupMenu 內指定的快速鍵,可以在 AP 內用,即使 PopupMenu 沒有被 Popup 出來。 不過,這樣好像與主題不太... 因為這樣的方法 HotKey 還是會被使用 RegisterHotkey 的 AP 搶走。 沒空更新的網頁...
http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com |
lcsboy
版主 發表:87 回覆:622 積分:394 註冊:2002-06-18 發送簡訊給我 |
|
lcsboy
版主 發表:87 回覆:622 積分:394 註冊:2002-06-18 發送簡訊給我 |
在不斷的try & error和被MSDN誤導後... 老天是有眼的==> 皇天不負re-try人 攔 class="code">
switch (Message.Msg)
{
case WM_SYSCOMMAND:
if (GetKeyState(VK_F?) < 0 && GetKeyState(VK_CONTROL) < 0)
{
...
do your right thing
...
return;
}
break;
} 就可以攔到自己AP裡的HotKey, 而且改變其行為 發表人 -
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |