/// <summary> /// BindEx自定义绑定参数 /// </summary> /// <param name="hwnd"></param> /// <param name="display"></param> /// <param name="mouse"></param> /// <param name="keypad"></param> /// <param name="_public"></param> /// <param name="mode"></param> /// <returns></returns> public bool BindWindowEx(int hwnd, string display, string mouse, string keypad, string _public,DmBindMode mode) { if (IsBind) { if (BindType == WindowBindType.BindEx) { return true; } UnBind(); } int dmRet = Dm.BindWindowEx(hwnd,display,mouse,keypad,_public,mode); if (dmRet == 0) { IsBind = false; BindType = WindowBindType.None; return false; } BindType = WindowBindType.BindEx; IsBind = true; return true; }
/// <summary> /// 【后台】绑定指定的窗口,并指定这个窗口的屏幕颜色获取方式,鼠标仿真模式,键盘仿真模式,以及模式设定,高级用户可以参考BindWindowEx更加灵活强大 /// </summary> /// <param name="hwnd">指定的窗口句柄</param> /// <param name="display">窗口绑定屏幕颜色获取方式</param> /// <param name="mouse">窗口绑定鼠标仿真模式</param> /// <param name="keypad">窗口绑定键盘仿真模式</param> /// <param name="mode">窗口绑定模式</param> /// <returns>0.失败,1.成功</returns> public int BindWindow(int hwnd, DmBindDisplay display, DmBindMouse mouse, DmBindKeypad keypad, DmBindMode mode) { return NativeMethods.BindWindow(_dm, hwnd, display.ToString(), mouse.ToString(), keypad.ToString(), (int)mode); }
/// <summary> /// 【后台】绑定指定的窗口,并指定这个窗口的屏幕颜色获取方式,鼠标仿真模式,键盘仿真模式 高级用户使用 /// </summary> /// <param name="hwnd">指定的窗口句柄</param> /// <param name="display">屏幕颜色获取方式 取值有以下几种: /// "normal" : 正常模式,平常我们用的前台截屏模式 /// "gdi" : gdi模式,用于窗口采用GDI方式刷新时. 此模式占用CPU较大. /// "gdi2" : gdi2模式,此模式兼容性较强,但是速度比gdi模式要慢许多,如果gdi模式发现后台不刷新时,可以考虑用gdi2模式. /// "dx2" : dx2模式,用于窗口采用dx模式刷新,如果dx方式会出现窗口进程崩溃的状况,可以考虑采用这种.采用这种方式要保证窗口有一部分在屏幕外.win7或者vista不需要移动也可后台. 此模式占用CPU较大. /// "dx3" : dx3模式,同dx2模式,但是如果发现有些窗口后台不刷新时,可以考虑用dx3模式,此模式比dx2模式慢许多. 此模式占用CPU较大. /// dx模式,用于窗口采用dx模式刷新,取值可以是以下任意组合,组合采用"|"符号进行连接 注意此模式需要管理员权限 /// 1. "dx.graphic.2d" 2d窗口的dx图色模式 此模式比较耗费资源,慎用. /// 2. "dx.graphic.3d" 3d窗口的dx图色模式,注意采用这个模式,必须关闭窗口3D视频设置的全屏抗锯齿选项. 此模式比较耗费资源,慎用.</param> /// <param name="mouse">鼠标仿真模式 取值有以下几种: /// "normal" : 正常模式,平常我们用的前台鼠标模式 /// "windows": Windows模式,采取模拟windows消息方式 同按键的后台插件. /// "windows3": Windows3模式,采取模拟windows消息方式,可以支持有多个子窗口的窗口后台 /// dx模式,取值可以是以下任意组合. 组合采用"|"符号进行连接 注意此模式需要管理员权限 /// 1. "dx.mouse.position.lock.api" 此模式表示通过封锁系统API,来锁定鼠标位置. /// 2. "dx.mouse.position.lock.message" 此模式表示通过封锁系统消息,来锁定鼠标位置. /// 3. "dx.mouse.focus.input.api" 此模式表示通过封锁系统API来锁定鼠标输入焦点. /// 4. "dx.mouse.focus.input.message"此模式表示通过封锁系统消息来锁定鼠标输入焦点. /// 5. "dx.mouse.clip.lock.api" 此模式表示通过封锁系统API来锁定刷新区域。注意,使用这个模式,在绑定前,必须要让窗口完全显示出来. /// 6. "dx.mouse.input.lock.api" 此模式表示通过封锁系统API来锁定鼠标输入接口. /// 7. "dx.mouse.state.api" 此模式表示通过封锁系统API来锁定鼠标输入状态. /// 8. "dx.mouse.state.message" 此模式表示通过封锁系统消息来锁定鼠标输入状态. /// 9. "dx.mouse.api" 此模式表示通过封锁系统API来模拟dx鼠标输入. /// 10. "dx.mouse.cursor" 开启此模式,可以后台获取鼠标特征码. (此模式仅支持按键和简单游平台)</param> /// <param name="keypad">键盘仿真模式 取值有以下几种: /// "normal" : 正常模式,平常我们用的前台键盘模式 /// "windows": Windows模式,采取模拟windows消息方式 同按键的后台插件. /// dx模式,取值可以是以下任意组合. 组合采用"|"符号进行连接 注意此模式需要管理员权限 /// 1. "dx.keypad.input.lock.api" 此模式表示通过封锁系统API来锁定键盘输入接口. /// 2. "dx.keypad.state.api" 此模式表示通过封锁系统API来锁定键盘输入状态. /// 3. "dx.keypad.api" 此模式表示通过封锁系统API来模拟dx键盘输入.</param> /// <param name="publicDesc">公共属性 dx模式共有 注意以下列表中,前面打五角星的表示需要管理员权限。 /// 取值可以是以下任意组合. 组合采用"|"符号进行连接 这个值可以为空 /// 1. ★ "dx.public.active.api" 此模式表示通过封锁系统API来锁定窗口激活状态. 注意,部分窗口在此模式下会耗费大/// 量资源 慎用. /// 2. ★ "dx.public.active.message" 此模式表示通过封锁系统消息来锁定窗口激活状态. 注意,部分窗口在此模式下会耗费大量资源慎用. 另外如果要让此模式生效,必须在绑定前,让绑定窗口处于激活状态(或者绑定以后再激活),否则此模式将失效. /// 3. "dx.public.disable.window.position" 此模式将锁定绑定窗口位置.不可与"dx.public.fake.window.min"共用. /// 4. "dx.public.disable.window.size" 此模式将锁定绑定窗口,禁止改变大小. 不可与"dx.public.fake.window.min"共用. /// 5. "dx.public.disable.window.minmax" 此模式将禁止窗口最大化和最小化,但是付出的代价是窗口同时也会被置顶. 不可与"dx.public.fake.window.min"共用. /// 6. "dx.public.fake.window.min" 此模式将允许目标窗口在最小化状态时,仍然能够像非最小化一样操作.此模式仅支持简单游与按键,小精灵等其它一律不支持. 另注意,此模式会导致任务栏顺序重排,所以如果是多开模式下,会看起来比较混乱,建议单开使用,多开不建议使用.</param> /// <param name="mode">窗口绑定模式</param> /// <returns>0.失败,1.成功</returns> public int BindWindowEx(int hwnd, string display, string mouse, string keypad, string publicDesc, DmBindMode mode) { return NativeMethods.BindWindowEx(_dm, hwnd, display, mouse, keypad, publicDesc, (int)mode); }
/// <summary> /// BindEx自定义绑定参数 /// </summary> /// <param name="hwnd"></param> /// <param name="display"></param> /// <param name="mouse"></param> /// <param name="keypad"></param> /// <param name="_public"></param> /// <param name="mode"></param> /// <returns></returns> public bool BindWindowEx(int hwnd, string display, string mouse, string keypad, string _public, DmBindMode mode) { if (IsBind) { if (BindType == WindowBindType.BindEx) { return(true); } UnBind(); } int dmRet = Dm.BindWindowEx(hwnd, display, mouse, keypad, _public, mode); if (dmRet == 0) { IsBind = false; BindType = WindowBindType.None; return(false); } BindType = WindowBindType.BindEx; IsBind = true; return(true); }