实现功能:

1.qq对战平台自动不断尝试进入房间

2.显血功能

3.小键盘数字键 7 8 4 5 1 2改键功能,可映射到任意字符键。

程序大致思路为:

1。建dll,安装消息钩子函数:hkb=SetWindowsHookEx(WH_GETMESSAGE,(HOOKPROC)KeyboardProc,theApp.m_hInstance,0);

2。钩子函数为:

LRESULT CALLBACK KeyboardProc(int nCode,WPARAM wParam,LPARAM lParam) { if (nCode==HC_ACTION) { PMSG msg=(PMSG)lParam; if (msg->message == WM_KEYDOWN || msg->message == WM_KEYUP) { char m_7[2],m_8[2],m_4[2],m_5[2],m_1[2],m_2[2]; char dllPath[256]; ::GetModuleFileName(theApp.m_hInstance,dllPath,256); CString s1; s1.Format("%s",dllPath); s1 = s1.Left(s1.ReverseFind('//')+1); ::GetPrivateProfileString("setup","m_7","Q", m_7,2,s1+"//config.ini"); ::GetPrivateProfileString("setup","m_8","Q", m_8,2,s1+"//config.ini"); ::GetPrivateProfileString("setup","m_4","Q", m_4,2,s1+"//config.ini"); ::GetPrivateProfileString("setup","m_5","Q", m_5,2,s1+"//config.ini"); ::GetPrivateProfileString("setup","m_1","Q", m_1,2,s1+"//config.ini"); ::GetPrivateProfileString("setup","m_2","Q", m_2,2,s1+"//config.ini"); if(m_7[0] == '/0'){ m_7[0] = ' '; } if(m_8[0] == '/0'){ m_8[0] = ' '; } if(m_4[0] == '/0'){ m_4[0] = ' '; } if(m_5[0] == '/0'){ m_5[0] = ' '; } if(m_1[0] == '/0'){ m_1[0] = ' '; } if(m_2[0] == '/0'){ m_2[0] = ' '; } if(msg->wParam == m_7[0]) { msg->wParam=VK_NUMPAD7; } else if(msg->wParam==m_8[0]) { msg->wParam=VK_NUMPAD8; } else if(msg->wParam==m_4[0]) { msg->wParam=VK_NUMPAD4; } else if(msg->wParam==m_5[0]) { msg->wParam=VK_NUMPAD5; } else if(msg->wParam==m_1[0]) { msg->wParam=VK_NUMPAD1; } else if(msg->wParam==m_2[0]) { msg->wParam=VK_NUMPAD2; } } } LRESULT RetVal = CallNextHookEx( hkb, nCode, wParam, lParam ); /* if (nCode==HC_ACTION) { if(::GetKeyState(0x12) >= 0){ ::keybd_event(VK_LMENU,0,0,0); } } */ return RetVal; }

3。建立一个c++ MFC工程

4。注册系统热键,crtl+alt+g 进入房间使用,ctrl+alt+j 显血使用

id=::GlobalAddAtom( "#123" ); if(!::RegisterHotKey( m_hWnd,id,MOD_CONTROL| MOD_ALT,'G' ) ) MessageBox( "hot key register failed!" ); id=::GlobalAddAtom( "#456" ); if(!::RegisterHotKey( m_hWnd,id,MOD_CONTROL| MOD_ALT,'J' ) ) MessageBox( "hot key register failed!" );

5.热键处理函数:

LRESULT CWC3AssistantDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) { // TODO: Add your specialized code here and/or call the base class switch(message) { case WM_HOTKEY: if (wParam==123) { if(go_hall_status ==0){ go_hall_status = 1; }else{ go_hall_status = 0; } } else if(wParam == 456){ alt_status = 1; } break; } return CDialog::WindowProc(message, wParam, lParam); }

6。ontimer函数为:

void CWC3AssistantDlg::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default if(go_hall_status == 1){ //进入房间; mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0); //::sleep(500); keybd_event( VK_RETURN , 0 , 0 , 0); CDialog::OnTimer(nIDEvent); } if(alt_status == 1){ keybd_event(219, 0, 0, 0); keybd_event(221, 0, 0, 0); alt_status = 0; //::AfxMessageBox("[]"); } }

7。最后增加一个按牛事件函数,调用dll的安装钩子函数即可。

需要代码的朋友可以加我qq:1265877

vc实现魔兽3改键程序相关推荐

  1. 魔兽争霸3游戏改键原理

    GitHub - dejavud/war3key: War3Key is a hotkey utility for Warcraft III. GitHub上的程序源代码,别人写的,我只是看代码分析他 ...

  2. 魔兽改键助手1.2(附VC源代码)

    魔兽改键助手 1.2 更新内容: (1)使用全局WH_KEYBOARD_LL  无需使用dll文件. (2)智能判断聊天模式,如果正在聊天,则取消改键. (3)支持托盘. (4)支持1.24版 更新计 ...

  3. 关于魔兽改键。。。类似11的

    事情是这样的--闲的无聊玩了一盘卡尔的DOTA,结果发现卡尔的按键真的是十分XX啊--于是就在各个网站找那种类似于11的魔兽改键工具,不是改快捷键,而是直接按照技能的位置来改键的.可是没有找到,而11 ...

  4. c# 改键-之魔兽改键(Hook)

    玩过dota的人都知道这游戏要用到一个辅助软件,即改键的软件,由于dota这款游戏的快捷键众多且杂乱无章,所以就需要一款改键的软件把那些快捷键改成我们顺手的,比如我们可以把P改成Q,把B改成W,把C改 ...

  5. 强大的魔兽改键--可以像11对战平台一样,自动进入BN!支持命令改键;

    限定改键在A-Z,0-9,TAb,空格,小键盘的7,8,4,5,1,2:F1-F4; 增加Caps Lock和~两个键的版本,取消F1帮助响应; 强大的改键器: 1.高效改键,游戏聊天不冲突:检测游戏 ...

  6. 简单魔兽改键的基本原理及基于MFC实现

    主要原理:通过线程钩子截获魔兽进程的键盘消息,然后模拟我们所需要的按键.软件设计基于MFC和用到的一些windowsAPI. 1.     界面布局和要求功能 软件界功能少见面简单,主要有小键盘和自定 ...

  7. 魔兽重置版改键+喊话

    魔兽重置版改键+喊话 原创软件,绝无广告 附代码 **长总求:自己写的改键+喊话软件 ** 最近在玩魔兽争霸3重置版 别的不评价了,没有改键功能非常麻烦,自己做了一个. 好坏就不评论了,就当给当年补票 ...

  8. 扯一下关于魔兽改键的蛋

    五一放了几天,难得不用呆在实验室,于是就去了趟将来工作的城市,四处走了走,感觉还不错,但这只会让我心中更加纠结,唉! 算了,不说废话了,有半个月没写博客了,其实也不是没东西可写,反而是要写的太多了,不 ...

  9. c#实现魔兽(warIII)中显血和改键功能 (附源码)(代码参考sohighthesky)

    因为自己每周没事都会打打魔兽争霸,网上下的改键精灵用起来又不太顺手,就动念头自己写一个.边试着写边在网上找资料.最后从百度又搜回到CSDN看到sohighthesky大大写的改键精灵:http://b ...

最新文章

  1. Android项目Tab类型主界面大总结 Fragment+TabPageIndicator+ViewPager
  2. 4月书讯(下)| 美亚4.8星评,又一本口碑相传的著作来了
  3. 禁用任何未使用的端口com_分享连接思科路由器控制台端口的正确设置
  4. HDU 1712 裸分组dp
  5. Python每日一练0018
  6. sqlplus 远程连接 oracle 12514 错误
  7. hdu 1584蜘蛛牌(DFS)
  8. linux 设置git ip,centos7安装gitlab并更改端口IP地址
  9. [Bzoj2243][SDOI2011]染色(线段树树剖)
  10. 李洋疯狂C语言之用递归解决李白喝酒问题(附填空题解法)
  11. mac怎么查node版本_Node.js 微服务实践:基于容器的一站式命令行工具链
  12. c语言 list 使用数组来实现_C|用数组或链表来实现队列这种抽象数据类型
  13. 十天学会单片机和c语言编程,十天学会单片机和C语言编程
  14. windows server 2008r2下搭建***服务器
  15. win10/win7安装Rational Rose 2007(解决虚拟光驱加载不了bin文件问题)
  16. Windows清理助手ARSWP
  17. VS-code输入感叹号没有提示
  18. Adding a Timepicker to jQuery UI Datepicker
  19. 第 11 章 一 执行引擎概述、解释器、JIT编译器-热点代码优化
  20. 递归:汉罗塔问题的程序实现

热门文章

  1. java awt 显示图片_Java开发笔记(一百二十三)AWT图像视图
  2. 4核8G云服务器4c8g或4h8g指的是什么?
  3. SD-NOIP2016游记
  4. buddypress主题_WordPress的十大BuddyPress插件
  5. 失去英国电信的华为是否会失去整个欧洲?
  6. 培训班出来的人后来都怎么样了?(八)
  7. 电商的噩梦:全国快递网点停摆65%?
  8. [译] 用 30 分钟建立一个网站的方式来学习 Bootstrap 4
  9. AprilTag的Tag识别,定位以及跟随
  10. H3C无线配置需要注意的步骤