Qt5.5如何调用大漠插件?

2 篇文章 0 订阅
这篇博客介绍了在Win10 64位系统下,Qt5.5如何手动注册和调用大漠3.1233版本插件。通过创建bat文件进行注册和卸载操作,并在QT项目中引入axcontainer库,实现dm.h和dm.cpp文件的添加,最后在main方法中验证调用成功。
摘要由CSDN通过智能技术生成

本机下测试,win10 64位,没有用自动注入方式采取手动,大漠版本3.1233,你懂得,最后一个免费版本。
手动注册方法也简单,可以写个简单的bat文件,直接新建一个.txt文本,把后缀改成bat,里面内容如下就行了。注意将bat文件和大漠的dm.dll文件放在同一目录下,这样就不用指定目录了。
注册内容,成功之后会有一个弹框显示

regsvr32 dm.dll

当然如果你已经注册过了会显示这个样子
显示已经加载
这种情况证明是已经注册成功的,当然会如果不放心,可以先把它卸载了,再注册一遍,卸载也可以用.bat文件,内容如下

regsvr32 dm.dll /u

就是这两个命令,尤其注意,注册卸载要用管理员权限运行:
regsvr32 dm.dll = 注册
regsvr32 dm.dll /u = 卸载
然后卸载成功是这个样子
卸载成功
有时候写了bat,用了管理员运行也报错,那就只有使用命令行了
注册成功
既然注册成功了,其它就好办了,新建一个简单的QT项目,需要在.pro文件里加入 axcontainer

QT  += axcontainer

然后就可以写一个移动测试,向工程里面添加dm.h和dm.cpp文件
头文件,dm.h

#ifndef DM_H
#define DM_H

#include <QWidget>
//需要引入的头文件
#include<QDir>
#include<QProcess>
#include<QAxWidget>
#include <QCoreApplication>
#include <QDebug>

class Dm : public QWidget
{
    Q_OBJECT
public:
    explicit Dm(QWidget *parent = 0);

    //自动注册大漠
    void AutoRegCom();
    //移动测试
    void DmMove();

signals:

public slots:
};

#endif // DM_H

dm.cpp文件

#include "dm.h"

Dm::Dm(QWidget *parent) : QWidget(parent)
{

}

void Dm::DmMove()
{
    QAxWidget *fla=new QAxWidget();
    //id通过vc6.0的ole view工具查看
    fla->setControl(QString::fromUtf8("{26037A0E-7CBD-4FFF-9C63-56F2D0770214}"));
    QVariant i= fla->dynamicCall("MoveTo(int,int)",1,1);
	   if(i>0)
	   {
	      qDebug("大漠插件调用成功");
	   }else
	   {
	       qDebug("大漠插件调用失败");
	   }

}

//自动注册大漠插件
void AutoRegCom()
{
    QString path;
    path=QCoreApplication::applicationDirPath();//获取程序运行路径
    QString cmdStr="Regsvr32"+path+"/dm.dll /s";
    QProcess p(0);
    p.start("cmd",QStringList()<<"/c"<<cmdStr);
    p.waitForStarted(); p.waitForFinished();
}

最后mian方法里面调用一下就可以知道是否调用成功了

#include "mywidget.h"
#include <QApplication>
#include <dm.h>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    //测试大漠移动 
    Dm dm;
    dm.DmMove();
    return 0;
}

鼠标能移到左上角坐标(1,1)处代表调用成功。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值