魔兽改键自己做
来源:互联网 发布:java socket 短连接 编辑:程序博客网 时间:2024/04/28 07:30
好久没写博客了,呵呵。今天再来写一篇。再次申明:菜鸟言论仅供娱乐。
最近一直在准备一个比赛,所以进度就慢了下来。突然于几天前突发奇想想自己做一个魔兽的改建,而且自己觉得也挺简单的,有现成的钩子模版,随便写写就行了,哪知道遇到了困难。正应了那就话啊:当你轻视它的时候,他就会轻视你。
错误的原因来自于我对windows消息机制的理解错误。我一开始以为消息是在钩子链中一级一级传递的,直到传递到最后一级钩子,最后一级的钩子函数通过调用CallNextHookEx将消息传递给焦点窗口。所以自己在搞的时候发现无论如何都改不了键。“列宁”说,消息在第一个钩子的时候就已经将消息发给焦点窗口了,说我的理解有问题,呵呵,看来我还得去查查windows消息在钩子间的传递原理,这篇博客就不写了,我会在弄清楚以后写在另一篇博客中。
于是上网找了找魔兽改键的开源代码,发现上面使用的是keybd_event来合成一个键盘的按建消息。于是做了一下,中间虽然出了一些小问题(全局变量的共享问题,一开始没发现“列宁”发现的,呵呵,本菜鸟总是在这边判断错),但是最终还是成功了。
按照大神的说法keybd_event是已经废弃的API函数,可以使用热键+SendInput函数简单的解决这个问题,SendInput函数实际上就是调用了keybd_event函数来实现相应的功能。代码也给了我看了一下,确实很简单,因为本菜鸟经验有限,想要实现将消息传给焦点窗口但又不知道有什么函数能实现这样的功能,知道有SendInput这种神器之前已经写好代码了。所以就贴出了我的代码,至于用SendInput实现上述功能的代码,虽然有,但是未经大神同意也不能乱贴,其基本思想是RegisterHotKey+SendInput,有兴趣的人可以自己做。
废话我就不多说了,下面贴出我的部分核心代码,主要是动态链接库的,MFC的代码我就不贴了,很容易的。而且我只做了能改一个键的改建,想改很多键只要将所有存储字符的变量改成字符数组就行了,也很简单。
头文件:
效果如下图:
另外朋友们如果有关于消息(特别是键盘消息)如何在钩子间传递以及如何传递到焦点窗口的消息机制的资料,如果愿意的话,还请和我这个菜鸟分享一下,谢谢了。
- 魔兽改键自己做
- 魔兽改键
- 魔兽改键程序修改
- vc实现魔兽3改键程序
- 关于魔兽改键。。。类似11的
- 魔兽改键助手1.2(附VC源代码)
- c#实现魔兽(warIII)中显血和改键功能
- 简单魔兽改键的基本原理及基于MFC实现
- c#实现魔兽(warIII)中显血和改键功能 (附源码)(不影响聊天打字)
- 发一份魔兽改键工具的代码,vc6.0环境,带聊天模式识别功能
- c#实现魔兽(warIII)中显血和改键功能 (附源码)(代码参考sohighthesky)
- 强大的魔兽改键--可以像11对战平台一样,自动进入BN!支持命令改键;
- 改做人工智能之前,90%的人都没能给自己定位
- 改做人工智能之前,90%的人都没能给自己定位
- 假如魔兽由其他公司来做
- MFC做的魔兽改建精灵
- 自己写了个魔兽显血改键工具
- 魔兽
- 写一个Drupal7有关SEO的小模块
- C51-数据存储类型
- Drupal7如何使用CKEDITOR在文章中插入图片
- C++模板实例化
- android模拟器横竖屏切换
- 魔兽改键自己做
- ASP.NET三层架构和MVC
- C++ 什么是对象
- PyCon 2011 - Hidden Treasures of the Python Standard Library - 将sqlite3的查询输出转化为python列表格式
- 交叉编译 MSB 和LSB 问题
- 海量数据战争——谁能赢得未来?
- 十三种设计模式的思维导图
- CSS在不同浏览器上的兼容问题
- Android Bluetooth初始化流程