序、大漠插件简介
大漠综合插件(dm.dll)采用vc6.0编写,是一款集前后台,文字识别,图色,键鼠,窗口,内存,DX,Call等功能于一身的综合插件。具有识别速度超级快的特点! 采用COM接口编写,适用于所有语言调用。 文本主要介绍下大漠插件的下载、注册和使用,希望能帮到需要的朋友们。
一、下载
1、下载:目前网上资源鱼龙混杂,不好辨别,我这里放出来验证过的最后一个免费版本,里边包含大漠插件3.1233、本文所有源代码及生成的发布程序 大漠插件3.1233 下载后解压到任意目录,其中dm.7z文件加压后文件内容如下图:
二、注册
因为大漠插件是采用COM接口编写,需要我们进行注册。
1、首先以记事本方式打开下图剪头所标示文件
2、将里边内容替换成如下内容,然后保存;
@echo off
echo %cd%
echo %~dp0
Regsvr32 %~dp0\dm.dll
3、然后鼠标右键,点以管理员身份运行;
4、然后会弹出如下窗口,代表注册成功:
三、使用dumpcpp生成cpp文件和头文件
使用Qt自带的工具dumpcpp将com组件生成cpp和头文件。
1、dumpcpp工具的位置在qt安装路径下,我的路径是D:\Qt\Qt5.13.0\5.13.0\msvc2017\bin\dumpcpp.exe,你们可以根据自己的qt安装路径进行查找;
2、在当前目录下打开命令窗口,然后输入D:\Qt\Qt5.13.0\5.13.0\msvc2017\bin\dumpcpp.exe dm.dll,然后点击回车;
注意:…\msvc2017\bin下的是32位的,对应创建qt工程时候要选择32位的程序;如果想用64位的,可以使用…\msvc2017_64\bin下边的dumpcpp.exe
3、你会发现文件夹中多了两个文件,分别为dm.cpp和dm.h,这就是我们需要使用的文件;
四、在代码中调用大漠插件
1、将生成的文件拷贝到我们的qt工程目录下,并添加到qt的工程目录中
2、创建一个类DmObject,用来操作相关的业务,在dmobject.h中间中包含dm.h,然后声明一个私有对象Dm::Idmsoft dm,创建两个方法,一个用来初始化大漠插件,一个用来发送消息给微信;
头文件代码如下:
#ifndef DMOBJECT_H
#define DMOBJECT_H
#include <QObject>
#include <QProcess>
#include "dm/dm.h"
class DmObject : public QObject
{
Q_OBJECT
public:
explicit DmObject(QObject *parent = nullptr);
void autoRegCom();
void cancelRegCom();
bool initDm();
void moveTo(const int &x, const int &y);
void sendMessToWeChat(const int ×, const QString &mess);
signals:
public slots:
void processError(QProcess::ProcessError error);
private:
Dm::Idmsoft dm;
};
#endif // DMOBJECT_H
3、初始化大漠插件方法
/**
* @brief 初始化大漠插件
* @return
*/
bool DmObject::initDm()
{
if(dm.setControl("dm.dmsoft"))//初始化COM对象
{
qDebug() << QStringLiteral("大漠测试,大漠版本:")<< dm.Ver() << endl;
return true;
}
else
{
qDebug() << QStringLiteral("大漠插件初始失败,先进行注册")<< endl;
return false;
}
}
4、给微信好友发消息步骤:
(1)获取微信句柄
QString className ="";
QString titleName = QStringLiteral("微信");
//获取窗口句柄
int hwnd =dm.FindWindow(className, titleName);
(2)获取wechat位置
//获取微信位置
dm.GetClientRect(hwnd, x1, y1, x2, y2);
(3)置顶显示wechat
//激活窗口
dm.SetWindowState(hwnd,1);
dm.delay(50);
//显示窗口
dm.SetWindowState(hwnd,7);
dm.delay(50);
//置顶窗口
dm.SetWindowState(hwnd,8);
dm.delay(200);
(4)模拟鼠标移动到聊天窗口
//移动光标到聊天窗口
dm.MoveTo(x2.toInt()-100, y2.toInt()-50);
dm.delay(201);
(5)模拟鼠标在聊天窗口点击
//模拟鼠标左键点击
dm.LeftClick();
dm.delay(142);
(6)模拟在聊天窗口输入内容
//输入内容到聊天窗口
dm.SendString(hwnd,mess);
dm.delay(100);
(7)模拟输入回车
//模拟点击回车
dm.KeyPressChar("enter");
dm.delay(100);
(8)取消置顶
//取消置顶
qDebug() << QStringLiteral("回车") << dm.SetWindowState(hwnd,9);
5、使用qtDesiger拖拽出来一个界面
实现发送按钮的槽函数
/**
* @brief 发送按钮槽
*/
void MainWindow::onSendButtonClicked(bool)
{
dmObject->sendMessToWeChat(ui->sendTimes->text().toInt(), ui->sendMess->toPlainText());
}
6、编译运行,可以自己设置发送内容和发送次数
最后要提醒一句,本文仅提供教程,女神把你拉黑了我不承担任何责任哈~
附件:源码
按照惯例,如果你感觉自己编码比较麻烦的话,这里放上我的源代码和生成的程序,请根据需要自行选择下载
点我下载