魔兽显血工具改建的显血是怎么实现的?

您的位置:&-&-> -& 魔兽显血改键工具 1.8
同类周下载排行
软件授权:免费版 
软件大小:3248KB
人气指数:
软件语言:简体中文
软件评级:
运行环境:Windows All
更新时间: 10:17:17
出 品 人:&&
软件合集:
魔兽小助手warkey是一款用于魔兽改键的软件,方便实用,绿色安全,是您war3的时候最好的显血改键助手。本软件绿色,迷你,资源占用少。最近更新,修复了win7下自动退出的BUG。
热门软件推荐
热门安卓应用推荐
牛华网推荐专业的QQ下载站 本站非腾讯QQ官方网站
官方网址:暂无
魔兽显血改键开图工具V2.51 安装版
软件大小:186KB
软件语言:中文
更新时间:
软件类别:免费/游戏娱乐
软件性质:QQ软件
软件厂商:
运行环境:Win2003, WinXP, Win2000, NT, WinME
软件等级:
本类热门软件
软件简介软件截图相关软件相关文章
多玩魔兽盒子最新版完美支持国服大灾变,拥有最完善的任务指引,带给你最完美的原汁原味游戏体验。使用说明1、下载在多玩魔盒官方的下载页面上可以直接鼠标右键另存为下载魔盒客户端。2、安装点击运行魔盒客户端,选
更新:15-01-15&&大小:2.5MM&&类别:游戏娱乐
评分:10.0
魔兽大脚插件努力为您打造最好的WOW魔兽世界插件,一步到位,按需定制,不断补充新鲜血液,下载后即可直接使用。在魔兽大脚插件的设置主界面,您既可以通过选择左侧的功能选项按钮来设定相关模块的参数;也可以通过右
更新:15-01-07&&大小:4.6MM&&类别:游戏辅助
评分:10.0
魔兽世界大脚插件国服测试服版最新插件下载在魔兽大脚插件的设置主界面,您既可以通过选择左侧的功能选项按钮来设定相关模块的参数;也可以通过右侧的分类导航按钮,快速找到战斗增强、界面增强、组队团队、商业物品
更新:14-10-25&&大小:4KBM&&类别:常用软件
&魔兽玩家必备的工具,简单快捷,软件虽小但能大大增加游戏的乐趣。
V4.9 更新说明:1.支持修改鼠标速度(Ctrl+→~←)2.修改屏幕亮度快捷键(Ctrl+↑~↓)3.支持发信号文字提示(Alt+鼠标右键)4.全面支持鼠标映射
更新:13-09-02&&大小:95KBM&&类别:游戏娱乐
由于WAR3众多的地图开发自各类版本中,每当我们想换张地图玩乃至观看dota录像时都时常会出现版本不支持的问题。而要重新下载地图补丁又太过繁琐。小喇叭魔兽版本转换器帮你一软轻松在魔兽各个版本间跳转,目前共支持
更新:13-08-26&&大小:327KBM&&类别:游戏娱乐
魔兽世界恐惧之心普通模式11月6日已经开启,对于新的副本玩家想必已经是跃跃欲试啦。冬冬小编整理了此副本boss打法的一些攻略心得。希望对玩家朋友有所有帮助!
首先说下团队情况,平民团,但不是“休闲团”
青春之水任务怎么完成:联盟这边是这样的,首先得发现那个被奥术牢笼禁锢起来的联盟营地,然后顺着营地的任务一步步做下去,经过几处魔古人的废墟之后,会看到暗夜女将军牺牲的情节,然后她爸用青春之水把自己的生
魔兽世界父亲的脚印任务如何完成,后续任务又是什么,很多玩家找不到后续任务。冬冬小编来为您揭晓吧!
一、父亲的脚印任务怎么做:1.方法:砮皂寺右边的台阶下有一个可对话的NPC;后门的牛可以点击;砮皂寺城墙上右边
魔兽世界寻找父亲任务在哪里接取?NPC在哪?寻找父亲任务怎么做?冬冬小编为您一一介绍哦!
一、任务接取地方:90级你再去影踪营地,在军需官那个营地有后续,不是寺里,是桥另一边的影踪营地,让你去左上角的岛找他
魔兽世界万圣节任务保护保护措施需要2个奇异之尘,但是很多玩家都找不到这个任务道具哦。冬冬小编找到了哦,下边给大家分享一下方法!
魔兽世界奇异之尘怎么得:
1.附魔材料商那里会定时更新2个材料,如果没有就是
本软件具有:【魔兽小助手Warkey】的功能又有【魔兽改键精灵】的特色注:本软件属于纯绿色,无任何插件。问:为什么要增加 强行退出魔兽功能?在浩方平台玩游戏时,有的时候别人进入你建的房间或你进入别人建的房间会出现卡死的现象,按哪个按键也没有反应,这时候你可以按下按“Shift+DEL”键试下。
魔兽显血改键开图工具 V2.51 安装版
其他版本下载
梦三国2于去年12月30日首测,引来不少玩家的影音先锋, 影音无极限! 自主研发的播放核心东哥洛克辅助是一款绿色纯净的洛克王国免费tgp腾讯游戏客户端是腾讯开发的一个整合游戏突击英雄是网易游戏打造一款革新全英雄设计爱思助手全新升级,5.0新版界面重新布局,更在步入2015年之际,Windows版微信终于正式发CGA英雄联盟助手除了基本的打野、水晶计时器魔幻英雄英文名Strife,是款第二代MOBA游戏驾考宝典下载,2013驾考宝典,超好用驾驶员
本类月下载排行
12345678910魔兽争霸显血工具_魔兽争霸显血改键
魔兽显血改键工具合辑
魔兽争霸的地图编辑功能造就了很多经典的地图,dota就是其中最出名的一款,但是很多玩家在玩这些魔兽地图的时候不能够很流畅的进行操作,魔兽显血改键工具能够帮助大家解放自己的双手,根据自己的习惯设置各种按键。
软件大小:18KB
软件语言:中文
玩魔兽争霸的的朋友应该都会用到改键,通过改键不仅可以更顺手,而且还能减少一些不必要的操作。今天给大家
软件大小:220KB
软件语言:中文
DcWarKey 是一款魔兽争霸改键显血工具。本软件是基于autohotkey写的。其实部分代码借鉴了dotaahk,可以说是
软件大小:34.9M
软件语言:中文
  魔兽争霸版本转换器(魔兽转换器)简体中文绿色版用于魔兽争霸游戏的版本转换,本软件转化速度快,占用空
软件大小:575KB
软件语言:中文
简介]:&只支持魔兽&是一款非常著名的即时战略游戏。制作公司是美国的暴雪公司。& 1.20 1.21
软件大小:53KB
软件语言:中文
  魔兽改键伴侣 - WarKey++,该款工具主要致力于纯改键,不外加其他复杂的功能。针对喜欢简约的
软件大小:88KB
软件语言:中文
&魔兽改键精灵是一个魔兽快捷键修改的小工具,有了它你就可以按你的喜好设置快捷皱键了。自已的游戏自
软件大小:187KB
软件语言:中文
魔兽显血改键开图工具 V2.51 是一款简单易用,功能强大,安全免费的多功能魔兽辅助工具。具有魔兽显血、自定
软件大小:460KB
软件语言:中文
WarHelper只是一款魔兽争霸辅助工具,仅此而已。但是我相信它给广大魔兽玩家提供的是最好的辅助。WarHelper
软件大小:132KB
软件语言:中文
魔兽争霸显血改键工具,主要功能包括魔兽显血、自定义包裹热键和英雄热键、快速自动进入魔兽游戏、浩方平台
软件大小:290KB
软件语言:中文
挥剑斩浮云魔兽改键精灵是一个魔兽争霸物品栏改键工具,可以修改魔兽争霸物品栏小键盘的按键。
魔兽争霸怎
软件大小:1.6M
软件语言:中文
WarZxx VIP(魔兽最强兵器)定位于强势战队及骨灰级玩家,是给予玩家超越原有的微操瓶颈的一种辅助工具。它
软件大小:269KB
软件语言:中文
魔兽显血改键工具(Easy key)是一款便捷实用的魔兽争霸的显血改键工具,使用这通过本工具能够在游戏中显示所
软件大小:960KB
软件语言:中文
今天为玩魔兽的孩子介绍一款魔兽世界游戏改键制作的辅助工具,绿色无毒哦~大家可以放心下载使用!
软件大小:169KB
软件语言:中文
魔兽全屏改键是一个魔兽争霸(War3)游戏辅助工具,用于修改魔兽争霸游戏快捷按键,能够保存至多八种改键方c#版魔兽助手,改键、显血、屏蔽按键 - Aimeast的专栏
- 博客频道 - CSDN.NET
2043人阅读
文章地址:
转载请指明出处!
C#版本的魔兽助手。有改键、显血、屏蔽按键 功能。改键支持连招。用底层键盘钩子实现。可以轻易修改为其他软件助手。
下载地址:(KeyBox有细节Bug)
使用的类:
//Configs.cs
using System.Collections.G
namespace WarHelper
[Serializable]
public class Configs
public bool DisableKey { }
public bool DisableWinKey { }
public bool DisableAltTabKey { }
public bool DisableCtrlEscKey { }
public bool DisableCtrlShiftEscKey { }
public bool ShowAlliedHP { }
public bool ShowEnemyHP { }
public bool EnableModifyKey { }
public List&ModifyKeyPair& ModifyKeyList { }
public Configs()
ModifyKeyList = new List&ModifyKeyPair&();
//LowLevelKeyboardHook.cs
using System.Runtime.InteropS
using System.Windows.F
namespace WarHelper
public class LowLevelKeyboardHook : IDisposable
[StructLayout(LayoutKind.Sequential)]
private struct KBDLLHOOKSTRUCT
///&summary&Especifica el codigo de tecla virtual, el codigo esta entre 1 y 254.&/summary&
public int vkC
///&summary&Especifica el escaneo de hardware del codigo de la tecla&/summary&
public int scanC
///&summary&especifica flags extendidos, mirar la estrucutra 'KBDLLHOOKSTRUCT' para mas info&/summary&
///&summary&especifica el time stamp para este mensaje.&/summary&
///&summary&Especifica informacion extra para el mensaje&/summary&
public int dwExtraI
const int WH_KEYBOARD_LL = 0x0D;
IntPtr WM_KEYDOWN = (IntPtr)0x0100;
IntPtr WM_KEYUP = (IntPtr)0x0101;
IntPtr WM_SYSKEYDOWN = (IntPtr)0x0104;
IntPtr WM_SYSKEYUP = (IntPtr)0x0105;
const int VK_LSHIFT = 0xA0;
const int VK_RSHIFT = 0xA1;
const int VK_LCONTROL = 0xA2;
const int VK_RCONTROL = 0xA3;
const int VK_LMENU = 0xA4;
const int VK_RMENU = 0xA5;
delegate IntPtr HookProc(int nCode, IntPtr wParam, IntPtr lParam);
[DllImport("user32.dll")]
static extern IntPtr SetWindowsHookEx(int idHook, HookProc lpfn, IntPtr hMod, int dwThreadId);
[DllImport("user32.dll")]
static extern bool UnhookWindowsHookEx(IntPtr hhk);
[DllImport("user32.dll")]
static extern IntPtr CallNextHookEx(IntPtr hhk, int nCode, IntPtr wParam, IntPtr lParam);
[DllImport("kernel32.dll")]
static extern int GetLastError();
public event KeyEventHandler KeyD
public event KeyEventHandler KeyUp;
public event KeyPressEventHandler KeyP
IntPtr hhk = IntPtr.Z
bool lShift, rShift, lCtrl, rCtrl, lAlt, rA
HookProc hookP
public LowLevelKeyboardHook()
public void Start()
if(hhk == IntPtr.Zero)
hookProc = new HookProc(LowLevelKeyboardProc);
hhk = SetWindowsHookEx(WH_KEYBOARD_LL, hookProc, IntPtr.Zero, 0);
if(hhk == IntPtr.Zero)
throw new Exception();
public void Stop()
if(hhk != IntPtr.Zero)
bool success = UnhookWindowsHookEx(hhk);
if(success)
hhk = IntPtr.Z
throw new Exception();
private IntPtr LowLevelKeyboardProc(int nCode, IntPtr wParam, IntPtr lParam)
IntPtr retVal = IntPtr.Z
if(nCode & 0)
return CallNextHookEx(hhk, nCode, wParam, lParam);
KBDLLHOOKSTRUCT keyboardHook = (KBDLLHOOKSTRUCT)Marshal.PtrToStructure(lParam, typeof(KBDLLHOOKSTRUCT));
if(wParam == WM_KEYDOWN || wParam == WM_SYSKEYDOWN)
switch(keyboardHook.vkCode)
case VK_LSHIFT:
case VK_RSHIFT:
case VK_LCONTROL:
case VK_RCONTROL:
case VK_LMENU:
case VK_RMENU:
Keys keys = MakeKeys(keyboardHook.vkCode);
KeyEventArgs keyEventArgs = new KeyEventArgs(keys);
if(KeyDown != null)
KeyDown(this, keyEventArgs);
if(keyEventArgs.Handled)
return (IntPtr)1;
KeyPressEventArgs keyPressArgs = new KeyPressEventArgs((char)keys);
if(KeyPress != null)
KeyPress(this, keyPressArgs);
if(keyPressArgs.Handled)
return (IntPtr)1;
if(wParam == WM_KEYUP || wParam == WM_SYSKEYUP)
switch(keyboardHook.vkCode)
case VK_LSHIFT:
case VK_RSHIFT:
case VK_LCONTROL:
case VK_RCONTROL:
case VK_LMENU:
case VK_RMENU:
Keys keys = MakeKeys(keyboardHook.vkCode);
KeyEventArgs keyEventArgs = new KeyEventArgs(keys);
if(KeyUp != null)
KeyUp(this, keyEventArgs);
if(keyEventArgs.Handled)
return (IntPtr)1;
return CallNextHookEx(hhk, nCode, wParam, lParam);
private Keys MakeKeys(int vkCode)
Keys keys = (Keys)vkC
if(lShift || rShift)
keys |= Keys.S
if(lCtrl || rCtrl)
keys |= Keys.C
if(lAlt || rAlt)
keys |= Keys.A
#region IDisposable Members
public void Dispose()
if(hhk != IntPtr.Zero)
#endregion
//SendKey.cs
using System.Runtime.InteropS
using System.Windows.F
namespace WarHelper
public static class SendKey
const int WM_KEYDOWN = 0x100;
const int WM_KEYUP = &mce:script type="text/javascript" src="http://hi.images.csdn.net/js/blog/tiny_mce/themes/advanced/langs/zh.js" mce_src="http://hi.images.csdn.net/js/blog/tiny_mce/themes/advanced/langs/zh.js"&&/mce:script&&mce:script type="text/javascript" src="http://hi.images.csdn.net/js/blog/tiny_mce/plugins/syntaxhl/langs/zh.js" mce_src="http://hi.images.csdn.net/js/blog/tiny_mce/plugins/syntaxhl/langs/zh.js"&&/mce:script&0x0101;
[DllImport("User32.DLL")]
static extern int SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
public static void Send(IntPtr hWnd, Keys key, bool autoUp)
IntPtr wp = (IntPtr)((int)key & 0xff);
SendMessage(hWnd, WM_KEYDOWN, wp, IntPtr.Zero);
if(autoUp)
SendMessage(hWnd, WM_KEYUP, wp, IntPtr.Zero);
public static void Send(IntPtr hWnd, Keys key)
Send(hWnd, key, true);
//ModifyKeyPair.cs
using System.Collections.G
using System.Windows.F
namespace WarHelper
[Serializable]
public class ModifyKeyPair
public Keys OrgKey { }
public List&Keys& TransformKeys { }
public ModifyKeyPair()
public ModifyKeyPair(Keys OrgKey, List&Keys& TransformKeys)
this.OrgKey = OrgK
this.TransformKeys = TransformK
public override string ToString()
string str = string.E
str = OrgKey.ToString() + " -& ";
bool noFirst =
foreach(Keys key in TransformKeys)
if(noFirst)
str += " + ";
str += key.ToString();
//KeysBox.cs
using System.Collections.G
using System.L
using System.T
using System.Windows.F
namespace WarHelper
public class KeysBox : TextBox
[DefaultValue(false)]
public bool AllowMultiKeys { }
public List&Keys& KeyList { }
const int VK_SHIFT = 0x10;
const int VK_CONTROL = 0x11;
const int VK_MENU = 0x12;
const int VK_LWIN = 0x5B;
const int VK_RWIN = 0x5C;
const int VK_APPS = 0x5D;
public KeysBox()
KeyList = new List&Keys&();
this.KeyDown += new KeyEventHandler(KeysBox_KeyDown);
this.KeyPress += new KeyPressEventHandler(KeysBox_KeyPress);
void KeysBox_KeyDown(object sender, KeyEventArgs e)
if(e.KeyValue == VK_SHIFT || e.KeyValue == VK_CONTROL || e.KeyValue == VK_MENU
|| e.KeyValue == VK_LWIN || e.KeyValue == VK_RWIN || e.KeyValue == VK_APPS)
if(!AllowMultiKeys)
KeyList.Clear();
if(e.KeyCode == Keys.Back)
if(KeyList.Count & 0)
KeyList.RemoveAt(KeyList.Count - 1);
KeyList.Add(e.KeyCode);
this.Text = this.ToString();
this.Select(this.Text.Length, 0);
e.Handled =
void KeysBox_KeyPress(object sender, KeyPressEventArgs e)
e.Handled =
public void Reset()
KeyList = new List&Keys&();
this.Text = this.ToString();
public override string ToString()
string str = string.E
bool noFirst =
foreach(Keys key in KeyList)
if(noFirst)
str += " + ";
str += key.ToString();
//Manage.cs
using System.Runtime.InteropS
using System.T
using System.Windows.F
namespace WarHelper
public class Manage : IDisposable
[DllImport("user32.dll")]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll")]
static extern IntPtr GetActiveWindow();
[DllImport("user32.dll")]
static extern IntPtr GetForegroundWindow();
[DllImport("kernel32.dll")]
static extern int GetLastError();
public bool War3IsActive { }
public Configs configs { }
public bool Started { }
LowLevelKeyboardHook keyHook =
IntPtr hWnd = IntPtr.Z
int bracketsF
object syncRoot = new object();
public Manage()
configs = new Configs();
keyHook = new LowLevelKeyboardHook();
keyHook.KeyDown += new KeyEventHandler(keyHook_KeyDown);
keyHook.KeyUp += new KeyEventHandler(keyHook_KeyUp);
public void Start()
bracketsFlag = 0;
keyHook.Start();
ThreadPool.QueueUserWorkItem(delegate { CheckWar3AliveAndShowHP(); });
public void Stop()
keyHook.Stop();
void keyHook_KeyDown(object sender, KeyEventArgs e)
if(!War3IsActive)
if(disableKey(e.KeyData))
e.Handled =
if(configs.EnableModifyKey)
ModifyKeyPair pair = configs.ModifyKeyList.Find(f =& f.OrgKey == e.KeyCode);
if(pair != null)
foreach(Keys key in pair.TransformKeys)
SendKey.Send(hWnd, key);
Thread.Sleep(10);
e.Handled =
void keyHook_KeyUp(object sender, KeyEventArgs e)
if(!War3IsActive)
if(e.KeyCode == Keys.OemOpenBrackets || e.KeyCode == Keys.OemCloseBrackets)
bracketsFlag = 0;
if(disableKey(e.KeyData))
e.Handled =
bool disableKey(Keys keys)
if(configs.DisableKey
&& ((configs.DisableWinKey && isWinKey(keys))
|| (configs.DisableAltTabKey && isAltTabKey(keys))
|| (configs.DisableCtrlEscKey && isCtrlEscKey(keys))
|| (configs.DisableCtrlShiftEscKey && isCtrlShiftEscKey(keys))))
static bool isWinKey(Keys keys)
return (keys == Keys.LWin || keys == Keys.RWin);
static bool isAltTabKey(Keys keys)
return (keys == (Keys.Alt | Keys.Tab));
static bool isCtrlEscKey(Keys keys)
return (keys == (Keys.Control | Keys.Escape));
static bool isCtrlShiftEscKey(Keys keys)
return (keys == (Keys.Control | Keys.Shift | Keys.Escape));
void CheckWar3AliveAndShowHP()
while(Started)
hWnd = FindWindow(null, "Warcraft III");
War3IsActive = (GetForegroundWindow() == hWnd);
if(War3IsActive)
if(bracketsFlag & 2)
if(configs.ShowAlliedHP)
SendKey.Send(hWnd, Keys.OemOpenBrackets, false);
if(configs.ShowEnemyHP)
SendKey.Send(hWnd, Keys.OemCloseBrackets, false);
bracketsFlag++;
bracketsFlag = 0;
Thread.Sleep(100);
#region IDisposable Members
public void Dispose()
if(keyHook != null)
keyHook.Dispose();
#endregion
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:89740次
积分:1639
积分:1639
排名:第12018名
原创:66篇
评论:46条
(1)(1)(2)(3)(3)(7)(3)(1)(4)(1)(2)(2)(1)(2)(1)(7)(3)(3)(3)(3)(8)(3)(3)(2)(4)}

我要回帖

更多关于 魔兽显血工具 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信