mirror of
https://github.com/JasonYANG170/GaoGaoNetAUTO.git
synced 2024-10-19 13:32:12 +00:00
301 lines
11 KiB
C++
301 lines
11 KiB
C++
|
#include "mainwindow.h"
|
|||
|
#include "ui_mainwindow.h"
|
|||
|
|
|||
|
#include <QWebEngineView>
|
|||
|
#include <QWebEnginePage>
|
|||
|
#include <QWebEngineSettings>
|
|||
|
#include <QNetworkAccessManager>
|
|||
|
#include <QNetworkReply>
|
|||
|
#include <QMessageBox>
|
|||
|
#include <QRegularExpression>
|
|||
|
#include <QSettings>
|
|||
|
#include <QSystemTrayIcon>
|
|||
|
QString Tonkencode="";
|
|||
|
QString drive1code="";
|
|||
|
QString drive2code="";
|
|||
|
MainWindow::MainWindow(QWidget *parent)
|
|||
|
: QMainWindow(parent)
|
|||
|
, ui(new Ui::MainWindow)
|
|||
|
{
|
|||
|
ui->setupUi(this);
|
|||
|
|
|||
|
|
|||
|
|
|||
|
QString drive2;
|
|||
|
// 从注册表读取code值
|
|||
|
QSettings codeSettings2("HKEY_CURRENT_USER\\Software\\YourOrganization\\GaoGaoNetAUTO", QSettings::NativeFormat);
|
|||
|
if (codeSettings2.contains("drive2")) {
|
|||
|
drive2 = codeSettings2.value("drive2").toString();
|
|||
|
}
|
|||
|
drive2code=drive2;
|
|||
|
// 设置初始值
|
|||
|
ui->textEdit_3->setText(drive2);
|
|||
|
ui->textEdit->append("设备2:"+drive2);
|
|||
|
|
|||
|
QString Tonken2;
|
|||
|
// 从注册表读取code值
|
|||
|
QSettings codeSettings("HKEY_CURRENT_USER\\Software\\YourOrganization\\GaoGaoNetAUTO", QSettings::NativeFormat);
|
|||
|
if (codeSettings.contains("Tonken")) {
|
|||
|
Tonken2 = codeSettings.value("Tonken").toString();
|
|||
|
}
|
|||
|
Tonkencode=Tonken2;
|
|||
|
// 设置初始值
|
|||
|
ui->textEdit->setText("账户Tonken:"+Tonken2);
|
|||
|
webView = new QWebEngineView(this);
|
|||
|
connect(webView, &QWebEngineView::loadFinished, this, &MainWindow::onLoadFinished);
|
|||
|
|
|||
|
webView->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); // 设置大小策略为扩展
|
|||
|
webView->setMinimumSize(QSize(400, 300)); // 设置最小大小为 (30, 30)
|
|||
|
// 将webView添加到verticalLayout中
|
|||
|
ui->verticalLayout23->addWidget(webView);
|
|||
|
|
|||
|
|
|||
|
// 将布局设置为窗口的布局
|
|||
|
|
|||
|
on_pushButton_clicked();
|
|||
|
}
|
|||
|
|
|||
|
MainWindow::~MainWindow()
|
|||
|
{
|
|||
|
delete ui;
|
|||
|
}
|
|||
|
void MainWindow::minimizeToSystemTray(QSystemTrayIcon* trayIcon)
|
|||
|
{
|
|||
|
QAction* minimizeAction = new QAction("最小化", this);
|
|||
|
connect(minimizeAction, &QAction::triggered, this, &QWidget::hide);
|
|||
|
|
|||
|
QMenu* trayIconMenu = new QMenu(this);
|
|||
|
trayIconMenu->addAction(minimizeAction);
|
|||
|
trayIcon->setContextMenu(trayIconMenu);
|
|||
|
connect(trayIcon, &QSystemTrayIcon::activated, this, [this](QSystemTrayIcon::ActivationReason reason) {
|
|||
|
if (reason == QSystemTrayIcon::DoubleClick) {
|
|||
|
this->showNormal();
|
|||
|
this->activateWindow();
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
#include <QNetworkInterface>
|
|||
|
|
|||
|
|
|||
|
void MainWindow::on_pushButton_clicked()
|
|||
|
{ QString drive1;
|
|||
|
// 从注册表读取code值
|
|||
|
QSettings codeSettings1("HKEY_CURRENT_USER\\Software\\YourOrganization\\GaoGaoNetAUTO", QSettings::NativeFormat);
|
|||
|
if (codeSettings1.contains("drive1")) {
|
|||
|
drive1 = codeSettings1.value("drive1").toString();
|
|||
|
}
|
|||
|
drive1code=drive1;
|
|||
|
// 设置初始3
|
|||
|
ui->textEdit_4->setText(drive1);
|
|||
|
ui->textEdit->append("设备1:"+drive1);
|
|||
|
|
|||
|
QString url = "http://auth.yungao-tech.com:1050/web/network/code?type=17&wlanuserip=10.194.28.69&wlanacname=Panabit&clientip=10.194.28.69&clientmac=d6:98:43:31:33:f3&paip=10.194.225.254&vlan=0.0&iarmdst=https://api-shoulei-ssl.xunlei.com/activity-v2/game_depend?activity_id=55555";
|
|||
|
|
|||
|
webView->load(QUrl(url));
|
|||
|
}
|
|||
|
|
|||
|
void MainWindow::onLoadFinished(bool ok)
|
|||
|
{
|
|||
|
if (ok) {
|
|||
|
webView->page()->toHtml([this](const QString &html){
|
|||
|
QString pattern = "var code = \"([^\"]+)\";";
|
|||
|
QRegularExpression regex(pattern);
|
|||
|
QRegularExpressionMatch match = regex.match(html);
|
|||
|
if (match.hasMatch()) {
|
|||
|
QString code = match.captured(1);
|
|||
|
|
|||
|
ui->textEdit->append("提取到的二维码code值: " + code);
|
|||
|
QNetworkAccessManager* manager = new QNetworkAccessManager(this);
|
|||
|
|
|||
|
QUrl url("http://auth.yungao-tech.com:1050/api/network/auth?str="+code);
|
|||
|
QNetworkRequest request(url);
|
|||
|
|
|||
|
// 添加Authorization Header
|
|||
|
QString accessToken = Tonkencode;
|
|||
|
QByteArray authenticationHeader = "Bearer " + accessToken.toUtf8();
|
|||
|
request.setRawHeader("Authorization", authenticationHeader);
|
|||
|
|
|||
|
QNetworkReply* reply = manager->get(request);
|
|||
|
connect(reply, &QNetworkReply::finished, this, [this, reply]() {
|
|||
|
if (reply->error() == QNetworkReply::NoError) {
|
|||
|
QByteArray data = reply->readAll();
|
|||
|
// 处理响应数据
|
|||
|
ui->textEdit->append("响应数据: " + data);
|
|||
|
} else {
|
|||
|
QByteArray error = reply->errorString().toUtf8();
|
|||
|
// 处理错误
|
|||
|
ui->textEdit->append("错误: " + error);
|
|||
|
}
|
|||
|
|
|||
|
reply->deleteLater();
|
|||
|
});
|
|||
|
} else {
|
|||
|
ui->textEdit->append("未找到var code值");
|
|||
|
}
|
|||
|
});
|
|||
|
} else {
|
|||
|
ui->textEdit->append("页面加载失败");
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
void MainWindow::on_pushButton_2_clicked()
|
|||
|
{
|
|||
|
QNetworkAccessManager* manager = new QNetworkAccessManager(this);
|
|||
|
|
|||
|
QUrl url("http://auth.yungao-tech.com:1050/api/network/logout?token=&ip="+drive1code);
|
|||
|
QNetworkRequest request(url);
|
|||
|
|
|||
|
// 添加Authorization Header
|
|||
|
QString accessToken =Tonkencode;
|
|||
|
QByteArray authenticationHeader = "Bearer " + accessToken.toUtf8();
|
|||
|
request.setRawHeader("Authorization", authenticationHeader);
|
|||
|
|
|||
|
QNetworkReply* reply = manager->get(request);
|
|||
|
connect(reply, &QNetworkReply::finished, this, [this, reply]() {
|
|||
|
if (reply->error() == QNetworkReply::NoError) {
|
|||
|
QByteArray data = reply->readAll();
|
|||
|
// 处理响应数据
|
|||
|
ui->textEdit->append("响应数据: " + data);
|
|||
|
} else {
|
|||
|
QByteArray error = reply->errorString().toUtf8();
|
|||
|
// 处理错误
|
|||
|
ui->textEdit->append("错误: " + error);
|
|||
|
}
|
|||
|
|
|||
|
reply->deleteLater();
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
#include <QSettings>
|
|||
|
|
|||
|
void MainWindow::on_pushButton_3_clicked()
|
|||
|
{
|
|||
|
// 获取code值
|
|||
|
QString Tonken2 = ui->textEdit_2->toPlainText();
|
|||
|
|
|||
|
// 保存到注册表
|
|||
|
QSettings settings("HKEY_CURRENT_USER\\Software\\YourOrganization\\GaoGaoNetAUTO", QSettings::NativeFormat);
|
|||
|
settings.setValue("Tonken", Tonken2);
|
|||
|
ui->textEdit->append("已保存");
|
|||
|
}
|
|||
|
#include <QFileInfo>
|
|||
|
void MainWindow::on_pushButton_4_clicked()
|
|||
|
{
|
|||
|
// 获取应用程序路径
|
|||
|
|
|||
|
// 设置开机自启动
|
|||
|
QSettings* settings = new QSettings("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run", QSettings::NativeFormat);
|
|||
|
auto application_name = QApplication::applicationName();
|
|||
|
settings->remove(application_name);
|
|||
|
|
|||
|
|
|||
|
delete settings;
|
|||
|
|
|||
|
|
|||
|
|
|||
|
// 显示开启提示窗口
|
|||
|
QMessageBox::information(this, "完成", "已开启开机自启动");
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
void MainWindow::on_pushButton_6_clicked()
|
|||
|
{
|
|||
|
|
|||
|
QString drive1 = ui->textEdit_4->toPlainText();
|
|||
|
// 保存到注册表
|
|||
|
QSettings settings("HKEY_CURRENT_USER\\Software\\YourOrganization\\GaoGaoNetAUTO", QSettings::NativeFormat);
|
|||
|
settings.setValue("drive1", drive1);
|
|||
|
ui->textEdit->append("已保存设备1的IP地址");
|
|||
|
// 在文本编辑框中输出IP地址
|
|||
|
ui->textEdit->append("当前设备IP地址 Current IP Address: " + drive1);
|
|||
|
on_pushButton_clicked();
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void MainWindow::on_pushButton_5_clicked()
|
|||
|
{
|
|||
|
QString drive2 = ui->textEdit_3->toPlainText();
|
|||
|
// 保存到注册表
|
|||
|
QSettings settings("HKEY_CURRENT_USER\\Software\\YourOrganization\\GaoGaoNetAUTO", QSettings::NativeFormat);
|
|||
|
settings.setValue("drive2", drive2);
|
|||
|
ui->textEdit->append("已保存设备2的IP地址");
|
|||
|
// 在文本编辑框中输出IP地址
|
|||
|
ui->textEdit->append("当前设备IP地址 Current IP Address: " + drive2);
|
|||
|
|
|||
|
QNetworkAccessManager* manager = new QNetworkAccessManager(this);
|
|||
|
|
|||
|
QUrl url2("http://auth.yungao-tech.com:1050/api/network/auth?ip="+drive2);
|
|||
|
QNetworkRequest request(url2);
|
|||
|
|
|||
|
// 添加Authorization Header
|
|||
|
QString accessToken = Tonkencode;
|
|||
|
QByteArray authenticationHeader = "Bearer " + accessToken.toUtf8();
|
|||
|
request.setRawHeader("Authorization", authenticationHeader);
|
|||
|
|
|||
|
QNetworkReply* reply = manager->get(request);
|
|||
|
connect(reply, &QNetworkReply::finished, this, [this, reply]() {
|
|||
|
if (reply->error() == QNetworkReply::NoError) {
|
|||
|
QByteArray data = reply->readAll();
|
|||
|
// 处理响应数据
|
|||
|
ui->textEdit->append("响应数据: " + data);
|
|||
|
} else {
|
|||
|
QByteArray error = reply->errorString().toUtf8();
|
|||
|
// 处理错误
|
|||
|
ui->textEdit->append("错误: " + error);
|
|||
|
}
|
|||
|
|
|||
|
reply->deleteLater();
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void MainWindow::on_pushButton_7_clicked()
|
|||
|
{
|
|||
|
QNetworkAccessManager* manager = new QNetworkAccessManager(this);
|
|||
|
|
|||
|
QUrl url("http://auth.yungao-tech.com:1050/api/network/logout?token=&ip="+drive2code);
|
|||
|
QNetworkRequest request(url);
|
|||
|
|
|||
|
// 添加Authorization Header
|
|||
|
QString accessToken =Tonkencode;
|
|||
|
QByteArray authenticationHeader = "Bearer " + accessToken.toUtf8();
|
|||
|
request.setRawHeader("Authorization", authenticationHeader);
|
|||
|
|
|||
|
QNetworkReply* reply = manager->get(request);
|
|||
|
connect(reply, &QNetworkReply::finished, this, [this, reply]() {
|
|||
|
if (reply->error() == QNetworkReply::NoError) {
|
|||
|
QByteArray data = reply->readAll();
|
|||
|
// 处理响应数据
|
|||
|
ui->textEdit->append("响应数据: " + data);
|
|||
|
} else {
|
|||
|
QByteArray error = reply->errorString().toUtf8();
|
|||
|
// 处理错误
|
|||
|
ui->textEdit->append("错误: " + error);
|
|||
|
}
|
|||
|
|
|||
|
reply->deleteLater();
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void MainWindow::on_pushButton12_clicked()
|
|||
|
{
|
|||
|
QList<QHostAddress> addressList = QNetworkInterface::allAddresses();
|
|||
|
QString ipAddress;
|
|||
|
QString ip="";
|
|||
|
// 找到第一个非本地IPv4地址
|
|||
|
for (const QHostAddress &address : addressList) {
|
|||
|
if (address != QHostAddress::LocalHost && address.protocol() == QAbstractSocket::IPv4Protocol) {
|
|||
|
ipAddress = address.toString();
|
|||
|
ip=ipAddress;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
//
|
|||
|
// 在文本编辑框中输出IP地址
|
|||
|
ui->textEdit->append("当前设备IP地址 Current IP Address: " + ip);
|
|||
|
}
|
|||
|
|