亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 全程鍵盤鉤子的一種簡單實現.txt

?? 電子書籍,里面有豐富的文章和精神的營養,
?? TXT
字號:
標題:全程鍵盤鉤子的一種簡單實現 查看此會員其它文章
  
文章的關鍵字:DLL 鍵盤鉤子  
發布人:山海網絡 發布時間:2003-3-6 10:37:49 
----------------------------------------------------------------------- 
 
隨著中間件技術的發展, DLL越來越為程序員所關注,因為使用DLL具有一系列優點,所以程序設計人員可能更多的在自己的軟件中采用這種技術。

下面我就把以前做過的一個簡單的全程鍵盤鉤子分析一下。

鉤子[以下簡稱Hook]是應用程序在Microsoft Windows 消息處理過程中設置的用來監控消息流并且處理系統中尚未到達目的窗口的某一類型消息過程的機制。如果Hook過程在應用程序中實現,若應用程序不是當前窗口時,該Hook就不起作用;如果Hook在DLL中實現,程序在運行中動態調用它,它能實時對系統進行監控。根據需要,我們采用的是在DLL中實現Hook的方式[關于HOOK更詳細的資料請查閱資料]。

在VC中新建一Win32 Dynamic-Link Library 工程,工程名為KBLock。AppWizard會生成相關文件,編譯生成的KBLock.cpp:

#include "stdafx.h"

#include "KBLock.h"



HHOOK hhkHook=NULL; //定義鉤子句柄

HINSTANCE hInstance=NULL; //程序實例


//下面的DLLMain相當于Win32程序中的WinMain函數,是入口點

BOOL APIENTRY DllMain( HANDLE hModule, 

DWORD ul_reason_for_call, 

LPVOID lpReserved

)

{

switch (ul_reason_for_call)

{

case DLL_PROCESS_ATTACH:

case DLL_THREAD_ATTACH:

case DLL_THREAD_DETACH:

case DLL_PROCESS_DETACH:

break;

}

hInstance=(HINSTANCE)hModule; //得到DLL實例

return TRUE;

}



//這是處理鍵盤消息的主要函數,在其中進行禁止操作

LRESULT CALLBACK HookProc(int nCode,WPARAM wParam,LPARAM lParam)

{

if (nCode < 0)

{

return CallNextHookEx(hhkHook,nCode,wParam,lParam);

}

if (nCode != HC_ACTION)

{

return CallNextHookEx(hhkHook,nCode,wParam,lParam);

}


//給出提示:鍵盤已經被鎖定,要進行判斷,看是否已有提示窗口,否則會彈個沒完

if (!::FindWindow(0, "KeyBoard Locked"))

{

::MessageBox(0,"鍵盤已經鎖定!!!","KeyBoard Locked",MB_OK);

}

return 1; //沒有return CallNextHookEx(hhkHook,nCode,wParam,lParam)則不會把消息//傳遞下去,所以我們的鍵盤就不起作用了

}

// This is an example of an exported variable

//導出函數:啟動鍵盤鎖定

BOOL EnableKeyboardCapture()

{

if(!(hhkHook=SetWindowsHookEx(WH_KEYBOARD,(HOOKPROC)HookProc,hInstance,0)))

return FALSE;

return TRUE;

}

//導出函數:解除鍵盤鎖定

BOOL DisableKeyboardCapture()

{

return UnhookWindowsHookEx(hhkHook);

}



上面就是DLL中最重要的代碼,當然要使DLL能正常工作還要編輯KBLock.h文件:

__declspec(dllexport) BOOL EnableKeyboardCapture(); //加載鉤子

__declspec(dllexport) BOOL DisableKeyboardCapture(); //卸載鉤子

再編輯KBLock.def

; KBLock.def : Declares the module parameters for the DLL.


LIBRARY "KBLock"

DEs criptION 'KBLock Windows Dynamic Link Library'


EXPORTS

; Explicit exports can go here


EnableKeyboardCapture @1

DisableKeyboardCapture @2


這樣我們用Depends.exe查看這個DLL時,就會發現這兩個導出函數了。


DLL方面的工作已經完成,這樣我們就可以在程序中調用它了。

雖然DLL是由VC開發的,但調用它的前臺程序可以用任何其它支持DLL調用的語言如:VB、VC、DELPHI、Win32asm實現,下面還是以VC為例,實現DLL的調用。

建一基于Dialog的工程,在其中加入兩個按鈕:“Lock KeyBoard”“UnLock”

在CexeDlg類中加入一個成員函數:

/*sign = TRUE 鎖定 sign = FALSE解鎖*/

BOOL CExeDlg::KBLock(BOOL sign)

{

hDLL=::LoadLibrary((LPCTSTR)"KBLock"); //加載DLL

if (hDLL!=NULL)

{loadhook=(LOADHOOK)::GetProcAddress (hDLL,"EnableKeyboardCapture");

unloadhook=(UNLOADHOOK)::GetProcAddress (hDLL,"DisableKeyboardCapture");


if(loadhook==NULL||unloadhook==NULL)

{::MessageBox(0,"對不起,本功能不能使用!!!","Somthing Wrong",MB_OK);

return 0;

}

if(sign)

loadhook();

else

{

unloadhook();

::FreeLibrary(hDLL);

}

return 1;

}

::MessageBox(0,"動態庫加載失敗!!!","Somthing Wrong",MB_OK);

return 0;

}


其中用到了事先定義好的全局變量:

typedef BOOL (CALLBACK *LOADHOOK)();

typedef BOOL (CALLBACK *UNLOADHOOK)();

HINSTANCE hDLL=NULL;

LOADHOOK loadhook;

UNLOADHOOK unloadhook;


這樣我們在兩個按鈕中分別加入KBLock(TRUE); 和 KBLock(FALSE);即可。



 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区不卡| 久久精品国产久精国产| 99视频国产精品| 亚洲人成精品久久久久| 91久久精品网| 天堂成人免费av电影一区| 日韩一区二区电影| 国产精品资源网站| 亚洲婷婷综合久久一本伊一区| 91一区二区在线观看| 性久久久久久久久| 2欧美一区二区三区在线观看视频| 国模少妇一区二区三区| 中文字幕欧美日本乱码一线二线 | 中文字幕一区二区三区不卡| 色综合天天综合色综合av| 午夜久久久久久| 2024国产精品| 91在线精品一区二区三区| 亚洲国产中文字幕| 2021中文字幕一区亚洲| 99国产精品国产精品毛片| 亚洲精品一二三四区| 日韩一区二区影院| 懂色av一区二区夜夜嗨| 亚洲国产你懂的| 久久久99久久| 欧美日韩国产天堂| 国产精品一区二区久久精品爱涩 | 免费人成网站在线观看欧美高清| 国产欧美精品国产国产专区 | 国产精品色一区二区三区| 欧美午夜宅男影院| 国产一区二区三区在线观看免费视频 | 欧美性猛交xxxxxx富婆| 国产酒店精品激情| 天堂成人免费av电影一区| 国产精品水嫩水嫩| 日韩免费在线观看| 色偷偷88欧美精品久久久| 美女一区二区三区| 亚洲一区二区三区四区在线观看| 久久精品人人做人人综合| 欧美精品粉嫩高潮一区二区| 99免费精品视频| 国内欧美视频一区二区| 午夜久久福利影院| 亚洲欧洲精品天堂一级| 欧美xxxxx牲另类人与| 欧美日韩免费电影| 92精品国产成人观看免费 | 成人晚上爱看视频| 久久aⅴ国产欧美74aaa| 亚洲一级电影视频| 中文字幕在线观看一区| 国产日韩欧美一区二区三区综合| 91精品国产综合久久小美女| 欧美在线你懂的| zzijzzij亚洲日本少妇熟睡| 国产在线播放一区三区四| 天堂一区二区在线免费观看| 亚洲午夜在线视频| 一区二区三区欧美| 亚洲欧洲日韩一区二区三区| 国产夜色精品一区二区av| 精品国产三级电影在线观看| 欧美一区二区性放荡片| 欧美一区二区三区在线| 欧美日本一道本在线视频| 欧美在线免费视屏| 欧美无砖专区一中文字| 在线国产亚洲欧美| 91精品1区2区| 欧洲生活片亚洲生活在线观看| 不卡av在线免费观看| 高清不卡一区二区| 成人丝袜18视频在线观看| 成人国产精品免费观看视频| 国产aⅴ综合色| 成人黄色电影在线| 91在线你懂得| 在线观看不卡视频| 欧美色欧美亚洲另类二区| 精品婷婷伊人一区三区三| 欧美日韩三级在线| 91精品国产综合久久婷婷香蕉| 91精品久久久久久久久99蜜臂| 日韩美女在线视频| 久久综合给合久久狠狠狠97色69| 26uuu亚洲综合色欧美 | 伊人婷婷欧美激情| 亚洲香蕉伊在人在线观| 日本美女视频一区二区| 麻豆国产精品官网| 国产成人av电影在线| 91麻豆国产自产在线观看| 欧美日韩一级视频| 精品少妇一区二区三区视频免付费 | 亚洲一区二区三区影院| 日本视频在线一区| 国产乱妇无码大片在线观看| 波多野结衣欧美| 欧美日韩免费电影| 久久久亚洲综合| 亚洲精品视频在线| 青草av.久久免费一区| 国产美女精品在线| 91福利视频网站| 日韩精品一区在线| 国产精品福利一区二区| 午夜精品一区二区三区电影天堂| 老色鬼精品视频在线观看播放| 成人激情动漫在线观看| 欧美日韩免费不卡视频一区二区三区 | 久久精品一区二区三区不卡牛牛| 一区精品在线播放| 蜜臀久久久99精品久久久久久| 国产白丝网站精品污在线入口| 欧美性大战久久久久久久蜜臀| 日韩精品一区二区三区swag| 中文字幕日韩一区| 麻豆高清免费国产一区| 一本色道亚洲精品aⅴ| 精品日韩一区二区三区| 一区二区三区视频在线看| 国产一区二区视频在线| 欧美日韩激情一区| 国产精品久久久久国产精品日日| 日本怡春院一区二区| 99国内精品久久| 久久青草欧美一区二区三区| 亚洲国产人成综合网站| 成人激情av网| 久久色在线观看| 丝袜美腿亚洲综合| 99r国产精品| 国产亚洲欧美日韩俺去了| 亚洲第一av色| 99re亚洲国产精品| 国产三级久久久| 奇米四色…亚洲| 在线观看免费亚洲| 亚洲天堂免费看| 国产suv精品一区二区883| 日韩精品自拍偷拍| 日本一不卡视频| 欧美日韩中文一区| 亚洲精品国产高清久久伦理二区| 成人午夜av在线| 国产欧美日韩不卡| 精品在线一区二区| 91精品国产手机| 亚洲国产乱码最新视频| 91久久精品国产91性色tv| 国产精品人人做人人爽人人添| 狠狠色综合播放一区二区| 91精品婷婷国产综合久久| 亚洲成人动漫在线免费观看| 99久久综合狠狠综合久久| 日本一二三不卡| 成人中文字幕在线| 国产精品欧美一区二区三区| 国产福利不卡视频| 久久精品一区蜜桃臀影院| 国产在线乱码一区二区三区| 亚洲精品在线三区| 久久成人18免费观看| 日韩视频永久免费| 精品一区二区久久久| 精品久久五月天| 国内精品伊人久久久久av影院| 精品久久久久香蕉网| 激情综合网激情| 久久精品无码一区二区三区| 国产高清不卡二三区| 欧美国产1区2区| 色呦呦一区二区三区| 一区二区久久久| 欧美精品亚洲一区二区在线播放| 水蜜桃久久夜色精品一区的特点 | 亚洲愉拍自拍另类高清精品| 色成人在线视频| 亚洲成av人片一区二区梦乃 | 亚洲精品在线免费播放| 国产高清亚洲一区| 亚洲人成在线播放网站岛国| 日本久久电影网| 偷拍自拍另类欧美| 欧美一级理论片| 国产福利一区二区三区视频在线 | 欧美日韩精品二区第二页| 秋霞午夜av一区二区三区| 26uuu国产日韩综合| 成人免费av网站| 亚洲愉拍自拍另类高清精品| 欧美一区二区三区日韩视频| 国产成人自拍高清视频在线免费播放| 国产午夜精品福利| 日本高清视频一区二区| 久久精品国产99|