在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

運用Hook技術完成鍵盤監控

運用Hook技術完成鍵盤監控

更新時間:2022-05-13 文章作者:未知 信息來源:網絡 閱讀次數:

在許多系統中,出于安全或其它原因,常常要求隨時對鍵盤進行監控,一個專業的監控程序必須具備兩點,一是實時;二是作為指示圖標運行。實際應用中把利用Hook(即鉤子)技術編寫的應用程序添加到Windows的任務欄的指示區中就能夠很好的達到這個目的。我在參考了API幫助文檔基礎上,根據在Delphi開發環境中的具體實現分別對這兩部分進行詳細論述。

一、Hook(鉤子)的實現:

---- Hook是應用程序在Microsoft Windows 消息處理過程中設置的用來監控消息流并且處理系統中尚未到達目的窗口的某一類型消息過程的機制。如果Hook過程在應用程序中實現,若應用程序不是當前窗口時,該Hook就不起作用;如果Hook在DLL中實現,程序在運行中動態調用它,它能實時對系統進行監控。根據需要,我們采用的是在DLL中實現Hook的方式。

---- 1.新建一個導出兩個函數的DLL文件,在hookproc.pas中定義了鉤子具體實現過程。代碼如下:

library keyspy;
uses
windows, messages, hookproc in 'hookproc.pas';
exports
setkeyhook,
endkeyhook;
begin
nexthookproc:=0;
procsaveexit:=exitproc;
exitproc:=@keyhookexit;
end.

2.在Hookproc.pas中實現了鉤子具體過程:
unit hookproc;
interface
uses
Windows, Messages, SysUtils, Controls, StdCtrls;
var
nexthookproc:hhook;
procsaveexit:pointer;
function keyboardhook(icode:integer;wparam:wparam;
lparam:lparam):lresult;stdcall;export;
function setkeyhook:bool;export;//加載鉤子
function endkeyhook:bool;export;//卸載鉤子
procedure keyhookexit;far;
const
afilename='c:\debug.txt';//將鍵盤輸入動作寫入文件中
var
debugfile:textfile;
implementation
function keyboardhookhandler(icode:integer;wparam:wparam;
lparam:lparam):lresult;stdcall;export;
begin
if icode<0 then
begin
result:=callnexthookex(hnexthookproc,icode,wparam,lparam);
exit;
end;
assignfile(debugfile,afilename);
append(debugfile);
if getkeystate(vk_return)<0 then
begin
writeln(debugfile,'');
write(debugfile,char(wparam));
end
else
write(debugfile,char(wparam));
closefile(debugfile);
result:=0;
end;
function endkeyhook:bool;export;
begin
if nexthookproc<>0 then begin
unhookwindowshookex(nexthookproc);
nexthookproc:=0;
messagebeep(0); end;
result:=hnexthookproc=0;
end;
procedure keyhookexit;far;
begin
if nexthookproc<>0 then endkeyhook;
exitproc:=procsaveexit; end;
end.

---- 二、Win95/98使用任務欄右方指示區來顯示應用程序或工具圖標對指示區圖標的操作涉及了一個API函數Shell_NotifyIcon,它有兩個參數,一個是指向TnotifyIconData結構的指針,另一個是要添加、刪除、改動圖標的標志。通過該函函數將應用程序的圖標添加到指示區中,使其作為圖標運行,增加專業特色。當程序起動后,用鼠標右鍵點擊圖標,則彈出一個菜單,可選擇sethook或endhook。

unit kb;
interface
uses
Windows, Messages, SysUtils, Classes,
Graphics, Controls, Forms,
Dialogs,
StdCtrls, Menus,shellapi;
const
icon_id=1;
MI_iconevent=wm_user+1;//定義一個用戶消息
type
TForm1 = class(TForm)
PopupMenu1: TPopupMenu;
sethook1: TMenuItem;
endhook1: TMenuItem;
N1: TMenuItem;
About1: TMenuItem;
Close1: TMenuItem;
Gettext1: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure sethook1Click(Sender: TObject);
procedure endhook1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Close1Click(Sender: TObject);
private
{ Private declarations }
nid:tnotifyicondata;
normalicon:ticon;
public
{ Public declarations }
procedure icontray(var msg:tmessage);
message mi_iconevent;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
function setkeyhook:bool;external 'keyspy.dll';
function endkeyhook:bool;external 'keyspy.dll';

procedure tform1.icontray(var msg:tmessage);
var
pt:tpoint;
begin
if msg.lparam=wm_lbuttondown then
sethook1click(self);
if msg.LParam=wm_rbuttondown then
begin
getcursorpos(pt);
setforegroundwindow(handle);
popupmenu1.popup(pt.x,pt.y);
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
normalicon:=ticon.create;
application.title:=caption;
nid.cbsize:=sizeof(nid);
nid.wnd:=handle;
nid.uid:=icon_id;
nid.uflags:=nif_icon or nif_message or nif_tip;
nid.ucallbackmessage:=mi_iconevent;
nid.hIcon :=normalicon.handle;
strcopy(nid.sztip,pchar(caption));
nid.uFlags:=nif_message or nif_icon or nif_tip;
shell_notifyicon(nim_add,@nid);
SetWindowLong(Application.Handle,
GWL_EXSTYLE,WS_EX_TOOLWINDOW);
end;

procedure TForm1.sethook1Click(Sender: TObject);
begin
setkeyhook;
end;

procedure TForm1.endhook1Click(Sender: TObject);
begin
endkeyhook;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
nid.uFlags :=0;
shell_notifyicon(nim_delete,@nid);
end;

procedure TForm1.Close1Click(Sender: TObject);
begin
application.terminate;
end;

---- 該程序雖然只用了幾個shellai函數,但是它涉及到了在Delphi中對DLL的引用、鉤子實現、對指示區的操作、用戶定義消息的處理、文件的讀寫等比較重要的內容,我相信這篇文章能對許多Delphi的初學者有所幫助。
---- 該程序在Win98、Delphi4.0中正常運行。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 国产又大又黄又猛| av在线网站免费观看| 国产成人精品免费看在线播放| 欧美,日韩,国产在线| 免费的av在线| 野外做受又硬又粗又大视频√| 在线观看免费视频污| 色播五月综合网| 中日韩av在线播放| www.com污| 欧美日韩亚洲国产成人| japanese在线视频| 992tv快乐视频| 久草热视频在线观看| 久久久精品在线视频| 欧美激情精品久久久久久小说| www.亚洲天堂网| 在线观看av网页| 激情图片qvod| 日日橹狠狠爱欧美超碰| 激情内射人妻1区2区3区| 亚洲一级免费在线观看| 免费国产成人看片在线| 丁香六月激情婷婷| 中文字幕第21页| 一道本在线观看视频| 国产在线播放观看| 高清av免费看| 成人精品视频在线播放| 欧美精品一区二区三区免费播放| 91热这里只有精品| 大荫蒂性生交片| 男女啪啪网站视频| 欧美中日韩在线| 91九色丨porny丨国产jk| 少妇黄色一级片| 欧美日韩不卡在线视频| 日韩一级免费片| 亚洲熟妇av日韩熟妇在线| 欧美女同在线观看| 久久成人免费观看| 秋霞在线一区二区| 99re精彩视频| 日韩免费高清在线| 女人床在线观看| 亚洲男人天堂2021| 欧美视频免费播放| 国产精品久久久久久久乖乖| 伊人色在线观看| 夫妻免费无码v看片| 亚洲av首页在线| 日本黄色福利视频| 免费在线激情视频| 少妇人妻无码专区视频| 真人做人试看60分钟免费| 狠狠热免费视频| 日韩中文字幕三区| 国产美女网站在线观看| 高清无码一区二区在线观看吞精| 亚洲综合日韩欧美| 久久国产这里只有精品| 日本男人操女人| 精品99在线视频| 欧美日韩在线一| 加勒比成人在线| 日韩中字在线观看| 成人免费在线网| 黄色免费福利视频| www一区二区www免费| 日韩av在线第一页| 欧美成人精品欧美一级乱| 免费看的黄色大片| 九热视频在线观看| 国内自拍第二页| 中国 免费 av| 欧美又粗又长又爽做受| 国产aaa免费视频| 116极品美女午夜一级| 国产精品99久久免费黑人人妻| 欧美性大战久久久久xxx| 男人操女人免费| 五月婷婷丁香色| 最近免费观看高清韩国日本大全| 黄色一级视频播放| 日韩国产一级片| 9久久婷婷国产综合精品性色| 日本人视频jizz页码69| 不用播放器的免费av| 成人午夜免费剧场| 国产精品少妇在线视频| aaa一级黄色片| 国产九色porny| 免费涩涩18网站入口| 欧美另类videos| 国产91对白刺激露脸在线观看| 中文久久久久久| 黄网站色视频免费观看| 亚洲爆乳无码专区| 2021国产视频| 国产精品无码专区av在线播放| 手机av在线网站| 久久久久久久激情| 蜜臀在线免费观看| 午夜免费一区二区| 日本阿v视频在线观看| www.xxx亚洲| 妺妺窝人体色777777| 在线看的黄色网址| 亚洲色成人www永久在线观看| 国产免费黄视频| 艳母动漫在线观看| 一区二区三区 日韩| 欧美又粗又长又爽做受| 99日在线视频| 国产精品无码av无码| 青青青青在线视频| 两性午夜免费视频| 日日躁夜夜躁aaaabbbb| 成人av一级片| 日韩中文字幕在线免费| 久久99国产精品一区| 色播五月激情五月| 亚洲欧美另类动漫| 国产精品沙发午睡系列| 91午夜在线观看| 老司机激情视频| 17c丨国产丨精品视频| 欧美精品一区二区性色a+v| 手机免费av片| 91福利免费观看| 做a视频在线观看| 国产原创精品在线| xxx国产在线观看| 中文字幕在线观看日| 中文字幕免费高清在线| 亚洲美女性囗交| 亚洲小视频网站| 午夜激情视频网| 超碰人人爱人人| 97碰在线视频| 91丨porny丨探花| 免费黄色福利视频| 91蝌蚪视频在线观看| 天天操,天天操| 在线观看国产一级片| 伊人免费视频二| 99精品一区二区三区的区别| 四虎精品欧美一区二区免费| 穿情趣内衣被c到高潮视频| 成人黄色片免费| 精品国产一二三四区| 亚洲精品乱码久久久久久自慰| 鲁一鲁一鲁一鲁一av| 影音先锋男人的网站| 精品视频免费在线播放| 日韩一级免费在线观看| 中文字幕线观看| 欧美成人精品免费| 成年人在线观看视频免费| www.污污视频| 久久国产精品网| 99热一区二区| 国产va亚洲va在线va| 亚洲激情在线观看视频| 天天爱天天做天天操| 黄色片久久久久| 日本免费在线视频观看| 2022亚洲天堂| 亚洲天堂第一区| 色婷婷综合久久久久中文字幕 | 91精品999| 日本阿v视频在线观看| 黄色片在线免费| 国产黄色激情视频| 爽爽爽在线观看| 欧美一级黄色影院| 精品无码一区二区三区在线| 我要看一级黄色大片| 国产玉足脚交久久欧美| www.久久av.com| 91看片就是不一样| 欧美大黑帍在线播放| 国产大片一区二区三区| av片中文字幕| 国产在线精品91| 国产精品视频网站在线观看| 五月天视频在线观看| 人妻有码中文字幕| 国产青青在线视频| 男人的天堂avav| 喜爱夜蒲2在线| 在线播放 亚洲| 日韩av.com| 国产又粗又长又爽又黄的视频| 国产真实乱子伦| 久久久精品在线视频| 久久免费视频3| 欧美a在线视频| 日韩精品一区中文字幕| 男人操女人免费|