乐于分享
好东西不私藏

模拟点击之大漠插件

模拟点击之大漠插件

你想了解关于 C# 中使用大漠插件(dm.dll)的相关知识,我会从基础使用、核心功能到注意事项,为你全面讲解。

大漠插件(大漠综合插件)是一款 Windows 平台下的键鼠模拟、图像识别、窗口控制类插件,广泛用于自动化脚本开发,C# 是调用它的常用语言之一。在按键精灵和易语言里面用得很多,可以后台找图找字,写游戏自动脚本用得特别多。

一、前期准备

  1. 环境要求

    • 操作系统:Windows(大漠插件仅支持 Windows)
    • .NET 框架:建议.NET Framework 4.0+(兼容 COM 组件调用)
    • 插件文件:获取dm.dll(需注册),并确保对应 32/64 位版本与你的程序一致
  2. 注册插件(关键步骤):以管理员身份运行 CMD,执行以下命令注册(假设 dm.dll 在 D 盘根目录):

32位系统/32位程序regsvr32 D:\dm.dll64位系统注册32位插件%windir%\SysWOW64\regsvr32 D:\dm.dll64位系统注册64位插件regsvr32 D:\dm.dll

# 32位系统/32位程序 regsvr32 D:\dm.dll # 64位系统注册32位插件 %windir%\SysWOW64\regsvr32 D:\dm.dll # 64位系统注册64位插件 regsvr32 D:\dm.dll

二、C# 调用大漠插件的完整示例

1. 引用插件(两种方式)

方式 1:直接添加 COM 引用

  • 在 VS 中右键项目 → 添加 → 引用 →  COM → 找到 “大漠综合插件”(若未显示,先注册插件)。

方式 2:手动定义接口(推荐,避免 COM 引用依赖)

using System;using System.Runtime.InteropServices;namespace DmDemo{    // 定义大漠插件的核心接口(简化版,可根据需要扩展)    [ComImport, Guid("7BC282C0-4908-4922-80C0-489055FDB904")// 大漠插件的CLSID,以实际为准    [InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]    public interface IDmSoft    {        // 激活插件(替换为你的大漠注册码和附加信息)        [DispId(101)]        intReg(string regCode, string verCode);        // 找图(x1,y1 左上角,x2,y2 右下角,图片路径,相似度,方向)        [DispId(201)]        intFindPic(int x1, int y1, int x2, int y2, string picPath, double sim, int dir, outint x, outint y);        // 鼠标左键单击        [DispId(301)]        intLeftClick(int x, int y);        // 设置窗口置顶        [DispId(401)]        intSetWindowTop(string hwnd, int top);        // 获取屏幕宽度        [DispId(501)]        intGetScreenWidth();    }    // 调用插件的主类    class Program    {        staticvoidMain(string[] args)        {            try            {                // 1. 创建大漠插件实例                IDmSoft dm = (IDmSoft)Activator.CreateInstance(Type.GetTypeFromCLSID(new Guid("7BC282C0-4908-4922-80C0-489055FDB904")));                // 2. 激活插件(替换为你的注册信息,未激活有功能限制)                int regResult = dm.Reg("你的注册码""你的附加码");                if (regResult != 1)                {                    Console.WriteLine("插件激活失败,错误码:" + regResult);                    return;                }                Console.WriteLine("插件激活成功");                // 3. 核心功能示例                // 示例1:获取屏幕宽度                int screenWidth = dm.GetScreenWidth();                Console.WriteLine("屏幕宽度:" + screenWidth);                // 示例2:找图(找屏幕范围内的test.bmp图片,相似度0.9)                int findX, findY;                int findResult = dm.FindPic(00, screenWidth, dm.GetScreenWidth(), @"D:\test.bmp"0.90out findX, out findY);                if (findResult == 1)                {                    Console.WriteLine("找到图片,坐标:(" + findX + "," + findY + ")");                    // 示例3:鼠标左键点击找到的图片位置                    dm.LeftClick(findX, findY);                }                else                {                    Console.WriteLine("未找到图片");                }            }            catch (Exception ex)            {                Console.WriteLine("调用失败:" + ex.Message);            }            Console.ReadKey();        }    }}

2. 代码关键说明

  • COM 接口定义:
GuidDispId需与大漠插件的实际值一致(可通过插件文档查询),不同版本的大漠插件 CLSID 可能略有差异。
  • 插件激活:
未激活的大漠插件有功能和时长限制,正式使用需购买注册码。
  • 找图路径:
图片路径建议用绝对路径,支持 BMP/PNG 等格式,相似度范围0-1(1 为完全匹配)。
  • 异常处理:
调用插件时必须加 try-catch,避免插件未注册、路径错误等导致程序崩溃

三、常见问题解决

  1. “类未注册” 异常

    • 原因:插件未注册,或 32/64 位版本不匹配。
    • 解决:重新注册插件,且 VS 项目的 “平台目标”(右键项目→属性→生成)需与插件位数一致(x86/x64)。
  2. 找图失败

    • 检查图片路径是否正确、图片是否被修改、相似度设置是否过高(建议先设 0.8 测试)。
    • 确保屏幕分辨率与截图时一致,避免缩放导致图片匹配失败。
  3. 键鼠模拟无效

    • 大漠插件的键鼠模拟依赖 Windows 消息,部分游戏 / 软件有防护,需以管理员身份运行程序。

总结

  1. C# 调用大漠插件的核心是通过COM 组件实例化插件对象,需先注册dm.dll并保证位数匹配。
  2. 关键步骤:注册插件 → 实例化接口 → 激活插件 → 调用核心功能(找图、键鼠模拟、窗口控制)。
  3. 注意事项:插件仅支持 Windows,未激活有功能限制,调用时需处理异常并保证路径 / 参数正确。
本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 模拟点击之大漠插件

评论 抢沙发

4 + 9 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮