日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 芯聞號(hào) > 充電吧
[導(dǎo)讀]本程序是利用通用的熱鍵管理DLL 實(shí)現(xiàn)的熱鍵功能,在收到熱鍵通知后截取屏幕的內(nèi)容并保存到BMP 文件中。編譯并運(yùn)行本例程序,單擊【瀏覽…】按鈕可以改變保存文件的路徑,而單擊【設(shè)置】按鈕則可以改變截取屏

本程序是利用通用的熱鍵管理DLL 實(shí)現(xiàn)的熱鍵功能,在收到熱鍵通知后截取屏幕的內(nèi)容并保存到BMP 文件中。編譯并運(yùn)行本例程序,單擊【瀏覽…】按鈕可以改變保存文件的路徑,而單擊【設(shè)置】按鈕則可以改變截取屏幕的熱鍵。

實(shí)現(xiàn)方法和思路:在一個(gè)DLL(熱鍵管理DLL)中安裝一個(gè)鍵盤鉤子,用另一個(gè)程序(Capture)通過這個(gè)DLL 來增加、修改、刪除熱鍵。當(dāng)用戶按了抓取屏幕的熱鍵后,熱鍵管理DLL 通知Capture 抓取屏幕,并保存位圖。下面來看程序代碼:

1.制作熱鍵管理DLL

這個(gè)DLL 實(shí)際上是一個(gè)鍵盤鉤子,由它來監(jiān)視系統(tǒng)的鍵盤事件。如果有和程序登記符合的按鍵和按鍵組合就通知該程序的窗口。為了應(yīng)用方便,把它做成了一個(gè)標(biāo)準(zhǔn)的管理庫來為其他的程序通過熱鍵服務(wù),它有兩個(gè)輸出函數(shù)AddHotkey 和DeleteHotkey,程序只需要調(diào)用這兩個(gè)函數(shù)即可,如果編譯之后不用改變熱鍵,則只需要AddHotkey 即可。

(1)全局變量:所有的全局變量都放在一個(gè)共享段中,定義如下:

1#pragma data_seg("shareddata")2HHOOKhHook =NULL;//鉤子句柄3UINTnHookCount =0;//掛接的程序數(shù)目4staticUCHARHotKey[MAX_KEY] = {0};//熱鍵虛擬鍵碼5staticUCHARHotKeyMask[MAX_KEY] = {0};//組合掩碼, control=4,alt=2,shift=16staticHWNDhCallWnd[MAX_KEY] = {0};//window handle associated with hotkey7staticintKeyCount =0;8staticUCHARMaskBits=0;//00000 Ctrl=4&Alt=2&Shift=19#pragma data_seg()

關(guān)于共享段,有幾點(diǎn)重要的說明:
A. 第一種必須在鏈接選項(xiàng)里指定該段為共享, projectsettingslinkobject/library , 加上/section:shareddata,rws。
B.第二種指定共享段的方法:在DLF 文件的sections 里加上一句shareddata read write shared。
C. 另外還有第三種指定共享段的方法: 需要在程序里加上一句“ #pragma comment(linker,"section:shareddata,rws")”。
D.所有的變量必須初始化,否則鏈接程序會(huì)把它放到普通數(shù)據(jù)段。
E.如果不初始化變量,需要在段外用“__declspec(allocate("shareddata")) 變量類型 變量名”的方式定義。
(2)兩個(gè)輸出函數(shù):

01//添加熱鍵02BOOL__declspec(dllexport) __stdcall AddHotkey(HWNDhWnd,UCHARcKey,UCHARcMask)03<code class="plain" style="margin:0px!important; padding:0px!important; border:0px!important; outline:0px!important; float:none!important; vertical-align:baseline!important; position:static!important; left:auto!important; top:auto!important; right:auto!important; bottom:auto!important; height:auto!important; width:auto!important; line-height:1.1em!important; font-family:Consolas,'Bitstream Vera Sans M

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉