實現熱鍵啟用後台程序

2021-08-26 07:31:05 字數 1523 閱讀 1738

在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來連線,這樣就增加了呼叫後台儲存過程的難度。筆者通過在實際工作程式設計客棧中長期的摸索,根據不同的業務需要,可以用下面三種方法去呼叫...