在dos下編寫常駐記憶體的應用(tsr)程式時,一般設定了熱鍵啟用方式,dos使用者對
此非常熟悉。在windows 9x環境下,有的時侯前台執行程式隱藏了windows的工作列,使
使用者不能切換,許多game程式執行時便是如此。如果在你的後台程序中加入熱鍵撥出功
能,便無此慮了。
程式實現原理:首先使用者預定乙個熱鍵,無論該程式是前台程式還是後台程式,只
要使用者按了這個鍵,該程式就會立即變為前台程式。程式中要對熱鍵訊息wm_hotkey進行
捕獲,並通過訊息引數了解哪乙個鍵被按下。
因為vc中的classwizard中沒有對訊息wm_hotkey進行封裝,我們只有通過程式設計實現對
為: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上。
VC實現系統熱鍵啟用後台服務程式
服務程式的隱藏與啟用 服務程式除了被啟用後同使用者的互動,絕大部分時間都是在後台隱藏執行的,不僅介面是不可視的,而且在任務列表中也不應當出現。關於介面的隱藏比較簡單,可以通過向showwindow 函式設定sw hide引數來實現,而在任務列表中的隱身則一般的做法是通過呼叫系統核心kernel32....
通用後台模版的實現
最近溫故了部分j aweb的知識,加之好久不寫 就想利用本次機會,做過乙個通用的後台管理 系統簡介 前端,基於bootstrap的免費後台框架cloud admin 資料庫 mysql 技術 jsp spring hibernate 說明 本系統本次,主要目的是實現功能,系統本身並沒有進行優化,僅僅...
ACCESS 呼叫後台儲存過程的實現方法
但是,它要對大量資料處理時,速度比較慢。當有大量資料需要處理時,不能在client端處理,而必須在server端處理。但access和server端之間多數通過odbc來連線,這樣就增加了呼叫後台儲存過程的難度。筆者通過在實際工作程式設計客棧中長期的摸索,根據不同的業務需要,可以用下面三種方法去呼叫...