#include "widget.h"
#include "ui_widget.h"
#include "Psapi.h"
void WinDeploy(){
TCHAR szModName[MAX_PATH];
HMODULE hMods[1024];
DWORD cbNeeded;
EnumProcessModules(GetCurrentProcess(),hMods,sizeof(hMods),&cbNeeded);
auto modCount = cbNeeded/sizeof(HMODULE);
QSet<QString> pathList;
for(DWORD i=0;i<modCount;i++){
GetModuleFileName(hMods[i],szModName,MAX_PATH);
pathList<<QFileInfo(QString::fromWCharArray(szModName)).absolutePath().toLower();
}
for(auto var:pathList){
var+="/windeployqt.exe";
if(QFile(var).exists()){
auto deploy = "-dir "+qApp->applicationDirPath()+"/deploy ";
QString options = " -no-opengl-sw -no-angle -no-system-d3d-compiler -no-translations -no-compiler-runtime ";
QProcess pro;
pro.start(var+options+deploy+qApp->applicationFilePath(),QIODevice::ReadOnly);
pro.waitForFinished();
return;
}
}
}
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
setWindowTitle(qApp->applicationDisplayName());
connect(ui->pushButton,&QPushButton::clicked,WinDeploy);
}
Widget::~Widget(){
delete ui;
}