惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Cisco Talos Blog
Cisco Talos Blog
阮一峰的网络日志
阮一峰的网络日志
云风的 BLOG
云风的 BLOG
D
Docker
Vercel News
Vercel News
IT之家
IT之家
Recent Announcements
Recent Announcements
Last Week in AI
Last Week in AI
V
Visual Studio Blog
Engineering at Meta
Engineering at Meta
腾讯CDC
Google DeepMind News
Google DeepMind News
I
InfoQ
博客园 - 三生石上(FineUI控件)
Apple Machine Learning Research
Apple Machine Learning Research
The GitHub Blog
The GitHub Blog
博客园 - Franky
The Cloudflare Blog
A
About on SuperTechFans
有赞技术团队
有赞技术团队
Y
Y Combinator Blog
T
Tenable Blog
P
Proofpoint News Feed
Recorded Future
Recorded Future
Security Latest
Security Latest
H
Hackread – Cybersecurity News, Data Breaches, AI and More
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
博客园 - 聂微东
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Google Online Security Blog
Google Online Security Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Simon Willison's Weblog
Simon Willison's Weblog
The Last Watchdog
The Last Watchdog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
N
News and Events Feed by Topic
TaoSecurity Blog
TaoSecurity Blog
U
Unit 42
The Hacker News
The Hacker News
Martin Fowler
Martin Fowler
T
Threat Research - Cisco Blogs
NISL@THU
NISL@THU
F
Full Disclosure
M
MIT News - Artificial intelligence
人人都是产品经理
人人都是产品经理
Hugging Face - Blog
Hugging Face - Blog
V
V2EX
Project Zero
Project Zero

博客园 - 秋雨飘飞

Data type mismatch in criteria expression. 条件表达式中数据类型不匹配 PInvoke 知识记录 近两年的BLOG博龄 前天一道我不能回答好的面试题:内存泄露你怎么解决?希望大家不吝赐教 ACCESS模糊查询出现的变态问题,不知道该问题的希望注意,知道内幕的高手还望给小弟一个解释 Thanks logahead - AJAX的BLOG AJAX淋漓尽致的发挥(Google个性化主页 VS. Windows Live.COM)站在互联网浪尖上窃喜 汉诺塔 - 秋雨飘飞 - 博客园 原来BT也要设置端口映射的,今天才发现 dup,dup2函数 恶心的C语言strtok函数 UNIX网络编程第一次作业基本搞定 像素真实的物理长度 学习笔记-HOOK钩子(1)l 监视剪贴板 捕获网页为图像 2D绘图控件 趋势程序大赛第八天 趋势程序大赛第 六&&七 天
发布这几天学习Hook搞出来的一个挺好玩的统计鼠标移动距离和键盘敲击次数的小程序
秋雨飘飞 · 2006-03-30 · via 博客园 - 秋雨飘飞

        引用:钩子可以监视系统或进程中的各种事件消息,截获发往目标窗口的消息并进行处理。这样,我们就可以在系统中安装自定义的钩子,监视系统中特定事件的发生,完成特定的功能,比如截获键盘、鼠标的输入,屏幕取词,日志监视等等。可见,利用钩子可以实现许多特殊而有用的功能。因此,对于高级编程人员来说,掌握钩子的编程方法是很有必要的。 

    这几天一直在学习 Hook 的相关知识,然后自己做了个好玩的小程序,主要功能统计一天鼠标移动了多少米,还有键盘敲击了多少次,从发这篇 BLOG 开始计数,呵呵,自己觉得挺好玩了。
     
      
关于 Hook 的相关资料,网上有几篇不错的文章,这些文章都是有价值的参考资料,我还是直接引用地址吧,感兴趣的可以研究研究:
      微软HOOK专题 

      Using Hooks from C#

      消息钩子函数入门篇

      Global System Hooks in .NET
      
      键盘敲击计数器·.NET中实现Global Hook 

      HOW TO:在 Visual C# .NET 中设置窗口挂钩

      
      
为了避免闭门造车,程序中直接使用了 Georgi UserActivityHook 类,简单而适合我的程序,当然上面在几篇文章中,你会发现功能更强更完善的类库,那是后话 ^0^

      关于WH_KEYBOARD_LLlow-level hook and the WH_MOUSE_LLlow-level hook ,请参看我的前一篇学习笔记

学习笔记-HOOK钩子(1)

       我的小程序截图(截止到目前为止的统计信息):
   
   程序主界面:浮动界面,占的空间很小,可拖动
            print.bmp

   程序设置菜单 和 程序设置界面
          setting2.JPG  setting.JPG

      其中要说明的是显示器宽度指的是物理宽度,可以通过电子尺软件测量出来的。

      程序下载点击这里(运行程序,系统需要安装.NET Framework1.1或更高版本)

      仅供娱乐,源码在此处下载!!      欢迎大家提出宝贵意见,很乐意能够修改这个程序,满足更多人的需求。

关于81提出的问题:

      C#键盘钩子我也写过,当时是为了想把[和{互换一下,取得键值没问题,但互换总是不行,最后也就做罢,不知楼主能否实现?
      暂时没有时间写这个程序,不过可以先说一下思路,首先判断Hook到的键盘事件获得的键值,
      如果是 “{ ”键值 则模拟键盘事件发送 “[”键值 的消息,反之则发送 }

关于占用内存16M的问题:
      原因是使用了类的数组,而且长度很大,所以难免。。。
      有机会我会完善一下的