實現熱鍵啟用後臺程式 (轉)
實現熱鍵啟用後臺程式 (轉)[@more@]
此非常熟悉。在 9X環境下,有的時侯前臺執行程式隱藏了Windows的工作列,使
使用者不能切換,許多Game程式執行時便是如此。如果在你的後臺程式中加入熱鍵撥出功
能,便無此慮了。
程式實現原理:首先使用者預定一個熱鍵,無論該程式是前臺程式還是後臺程式,只
要使用者按了這個鍵,該程式就會立即變為前臺程式。程式中要對熱鍵訊息WM_HOTKEY進行
捕獲,並透過訊息引數瞭解哪一個鍵被按下。
因為VC中的CLASSWIZARD中沒有對訊息WM_HOTKEY進行封裝,我們只有透過實現對
該訊息的對映及處理(程式設計環境VC5, 工程為MFC APPWIZARD [EXE] 型別,本例的工程名
為:EXAMPLE)。
具體實現步驟如下:
1. 宣告熱鍵訊息處理原型
在CExampleView.h中訊息對映宣告處(AFX_mSG字樣之後)加入如下語句:
LRESULT OnHotKey(WPARAM wParam,LPARAM lParam);
2. 訊息與相應處理函式相關聯
在CExampleView.Cpp中加入訊息對映宏,使訊息與相應處理函式發生關係,
ON_MESSAGE(WM_HOTKEY,OnHotKey);
3. 為方便以後的操作
預先在CexamplView類中建立一個響應WM_CREATE和WM_DESTROY訊息的函式
OnCreate( )與OnDestroy( )的,(利用CLASSWIZARD很容易實現,請參考有關VC的書籍,在此不再贅述)。
4.向登記熱鍵
在OnCreate()函式中加入如下程式碼以向系統登記熱鍵,本例子的熱鍵設為
Ctrl+Shift+A.
RegisterHotKey(m_hWnd,1001,MOD_CONTROL|MOD_SHIFT,′A′);
RegisterHotKey(m_hWnd,1002,MOD_CONTROL|MOD_SHIFT,′a′);
5.處理熱鍵
在訊息處理函式OnHotKey()中對熱鍵進行處理,並可加入使用者希望執行的程式程式碼等
:
LRESULT CExampleView::OnHotKey(WPARAM wParam,LPARAM lParam)
if (wParam== 1001||wParam= =1002)
CWnd::SetForegroundWindow();//使得被啟用視窗出現在前景
MessageBox(″Hello,How do you do!″);
//使用者可在此新增程式碼
return 0;
6.程式執行完畢後解除熱鍵
在OnDestroy()中透過UnRegisterHotKey()解除熱鍵登記,釋放系統資源.
UnRegisterHotKey(m_hWnd, 1001);
UnRegisterHotKey(m_hWnd, 1002);
7.編譯並執行程式
執行程式後,無論何時只要按下熱鍵Ctrl+Shift+A後本程式便立即成為前臺執行程
序,並出現在DeskTop上。
實現熱鍵啟用後臺程式
(湖南 張波雲)
在DOS下編寫常駐的應用(TSR)時,一般設定了熱鍵啟用方式,DOS對此非常熟悉。在 9X環境下,有的時侯前臺執行程式隱藏了Windows的工作列,使
使用者不能切換,許多Game程式執行時便是如此。如果在你的後臺程式中加入熱鍵撥出功
能,便無此慮了。
程式實現原理:首先使用者預定一個熱鍵,無論該程式是前臺程式還是後臺程式,只
要使用者按了這個鍵,該程式就會立即變為前臺程式。程式中要對熱鍵訊息WM_HOTKEY進行
捕獲,並透過訊息引數瞭解哪一個鍵被按下。
因為VC中的CLASSWIZARD中沒有對訊息WM_HOTKEY進行封裝,我們只有透過實現對
該訊息的對映及處理(程式設計環境VC5, 工程為MFC APPWIZARD [EXE] 型別,本例的工程名
為:EXAMPLE)。
具體實現步驟如下:
1. 宣告熱鍵訊息處理原型
在CExampleView.h中訊息對映宣告處(AFX_mSG字樣之後)加入如下語句:
LRESULT OnHotKey(WPARAM wParam,LPARAM lParam);
2. 訊息與相應處理函式相關聯
在CExampleView.Cpp中加入訊息對映宏,使訊息與相應處理函式發生關係,
ON_MESSAGE(WM_HOTKEY,OnHotKey);
3. 為方便以後的操作
預先在CexamplView類中建立一個響應WM_CREATE和WM_DESTROY訊息的函式
OnCreate( )與OnDestroy( )的,(利用CLASSWIZARD很容易實現,請參考有關VC的書籍,在此不再贅述)。
4.向登記熱鍵
在OnCreate()函式中加入如下程式碼以向系統登記熱鍵,本例子的熱鍵設為
Ctrl+Shift+A.
RegisterHotKey(m_hWnd,1001,MOD_CONTROL|MOD_SHIFT,′A′);
RegisterHotKey(m_hWnd,1002,MOD_CONTROL|MOD_SHIFT,′a′);
5.處理熱鍵
在訊息處理函式OnHotKey()中對熱鍵進行處理,並可加入使用者希望執行的程式程式碼等
:
LRESULT CExampleView::OnHotKey(WPARAM wParam,LPARAM lParam)
if (wParam== 1001||wParam= =1002)
CWnd::SetForegroundWindow();//使得被啟用視窗出現在前景
MessageBox(″Hello,How do you do!″);
//使用者可在此新增程式碼
return 0;
6.程式執行完畢後解除熱鍵
在OnDestroy()中透過UnRegisterHotKey()解除熱鍵登記,釋放系統資源.
UnRegisterHotKey(m_hWnd, 1001);
UnRegisterHotKey(m_hWnd, 1002);
7.編譯並執行程式
執行程式後,無論何時只要按下熱鍵Ctrl+Shift+A後本程式便立即成為前臺執行程
序,並出現在DeskTop上。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-1005427/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Eclipse/tomcat 如何實現應用熱部署和熱啟動EclipseTomcat熱部署
- Go 如何實現熱重啟Go
- Keyboard Maestro for mac(鍵盤熱鍵工具)11.0.1啟用版Mac
- solidDB 後臺啟動程式Solid
- Keyboard Maestro for macOS(熱鍵大師)11.0一鍵啟用版Mac
- [轉]:多程式等待的跨平臺實現
- js實現開啟應用程式程式碼例項JS
- 如何實現SSH斷開後 程式仍然在後臺執行
- 向任意應用程式(包括後臺的)傳送任意按鍵訊息
- [提問交流]求助,後臺跳轉至前臺,如何實現,謝謝
- 重啟鍵看不到的程式 (轉)
- VUE 實現 Studio 管理後臺(八):用右鍵選單 contextmenu,編輯樹形結構VueContext
- 利用熱鍵控制滑鼠移動的一個程式 (轉)
- 用低程式碼平臺,5分鐘實現報價轉訂單功能
- 用go實現跨平臺Autoit/AutoHotkey和按鍵精靈功能示例程式碼Go
- 關於oracle後臺啟用的schedule jobOracle
- 教你用SingalR實現後臺開發程式執行時時檢測
- 新廣告法實施波及電商平臺 部分啟用關鍵詞過濾
- java設定熱鍵(C++實現dll匯入)JavaC++
- 利用VC++程式設計實現程式自動啟動 (轉)C++程式設計
- Android按下返回鍵,將應用退到後臺Android
- javascript實現關鍵字高亮(轉)JavaScript
- Java Web Start 實現關鍵 (轉)JavaWeb
- Angular 使用 RouteReuseStrategy (路由複用策略) 實現後臺 TAB 標籤Angular路由
- 古詩網站後臺實現網站
- 後臺商品管理功能實現
- 後臺管理系統CMS模組-後端實現後端
- 兩臺Linux完美實現雙機熱備Linux
- WINDOWS9x 的後臺程式 (轉)Windows
- 實驗,暫停oracle後臺程式Oracle
- 蘋果Mac電腦使用鍵盤快捷鍵開啟應用程式蘋果Mac
- Keyboard Maestro for macOS(熱鍵大師)11.0一鍵破解啟用版 支援M1Mac
- 在應用程式中實現RAS撥號 (轉)
- istanbul 怎麼實現動態插樁方式,並啟用 istanbul-middleware 後臺服務
- 用nohup命令程式在後臺執行
- 在VC中實現程式在啟動時隱藏 (轉)
- 一個用 Laravel5.5 自己實現的許可權後臺Laravel
- CRS啟動的三個主要的後臺程式