mirror of
https://github.com/JasonYANG170/GaoGaoNetAUTO.git
synced 2024-10-19 05:22:04 +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);
|
||
}
|
||
|