【教程向】Day6 游戏内使用大漠插件?c++/游戏/制作/qt/大漠

Day 6

hello,今天回到我们qt的教程

up最近这几天事比较多,所以教程都比较短

但!短小精悍你们懂不懂?!

免责声明:本教程仅供交流学习,禁止用于任何商业用途

今日主题:大漠插件引用&注册

效果图:


一、下载大漠插件

(这里我们使用的是免费的最后一个版本的3.1233)

唉,我怎么人这么好,每次都帮你们准备好资源

都不用上网去搜索了,想当初,我搜索资源,那叫一个苦啊

下载地址:https://www.lanzous.com/i5qducb

将压缩包解压后得到这个界面


我们取出其中的dm.dll放到我们的工程文件夹下,就完成这步了

二、引入com组件库

在pro文件加入一行

QT += core gui axcontainer


三、提升权限

照抄此函数,放进main文件夹里面

(Q:这个函数有什么用呢 A:因为大漠插件涉及的操作很多都需要系统的最高权限)



static void raisePrivilege()

{    // to read memory of some processes, we need this    

HANDLE hToken;    

TOKEN_PRIVILEGES tp;    

tp.PrivilegeCount = 1;    

tp.Privileges[0].Attributes =SE_PRIVILEGE_ENABLED;   if(OpenProcessToken(GetCurrentProcess(),TOKEN_ALL_ACCESS, &hToken)) {               if(LookupPrivilegeValue(NULL,SE_DEBUG_NAME, &tp.Privileges[0].Luid)) {            AdjustTokenPrivileges(hToken, FALSE, &tp,NULL,NULL, 0);        }    }    

if(hToken) {        CloseHandle(hToken);    }}

并在main函数中加上这一行raisePrivilege();进行调用

四、初始化大漠插件

点击mainwindow文件,AutoRegDm函数直接抄吧

抄之前先在函数头添上这几行

#include <QLibrary>

#include <qprocess.h>

#include <qmessagebox.h>

#include <Windows.h>

这个函数的功能自动注册大漠插件(注意你的整个软件要在管理员模式下运行,所以刚刚的提升权限就是这个道理)


void AutoRegDm()

{    

QString path;    

path=QCoreApplication::applicationDirPath();//获取程序运行路径    

QString cmdStr="Regsvr32"+path+"/dm.dll /s";    

QProcess process(0);    

process.start("cmd",QStringList()<<"/c"<<cmdStr);    

process.waitForStarted();     

process.waitForFinished();

}

然后在mainwindow的构造函数,也就是下图的这个函数添上两行

一行是调用我们上面的自动注册大漠插件函数

另几行是初始化大漠插件所需要的函数


//自动注册大漠插件    

AutoRegDm();        

//初始化大漠插件    

QAxWidget *dm=new QAxWidget();    

dm->setControl(QString::fromUtf8("{26037A0E-7CBD-4FFF-9C63-56F2D0770214}"));  

QMessageBox::information(this,"this",dm->dynamicCall("Ver()").toString());//测试是否成功

好了,调试一下程序吧


今天的教程虽然比较简单,但很重要,因为这是明天教程的基础!!

都看到这里了,还不点波关注点个赞嘛??



本文为我原创

-- --
  • 投诉或建议
评论