mirror of
https://github.com/MatsuriDayo/nekoray.git
synced 2025-12-18 04:54:38 +03:00
upload code
This commit is contained in:
69
sys/AutoRun.cpp
Normal file
69
sys/AutoRun.cpp
Normal file
@@ -0,0 +1,69 @@
|
||||
#include "AutoRun.hpp"
|
||||
|
||||
#include <QApplication>
|
||||
|
||||
#ifdef Q_OS_WIN
|
||||
|
||||
#include <QDir>
|
||||
#include <QSettings>
|
||||
|
||||
//设置程序自启动 appPath程序路径
|
||||
void SetProcessAutoRunSelf(bool enable) {
|
||||
auto appPath = QApplication::applicationFilePath();
|
||||
|
||||
QSettings settings("HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",
|
||||
QSettings::NativeFormat);
|
||||
|
||||
//以程序名称作为注册表中的键
|
||||
//根据键获取对应的值(程序路径)
|
||||
QFileInfo fInfo(appPath);
|
||||
QString name = fInfo.baseName();
|
||||
QString path = settings.value(name).toString();
|
||||
|
||||
//如果注册表中的路径和当前程序路径不一样,
|
||||
//则表示没有设置自启动或自启动程序已经更换了路径
|
||||
//toNativeSeparators的意思是将"/"替换为"\"
|
||||
QString newPath = QDir::toNativeSeparators(appPath);
|
||||
|
||||
if (enable) {
|
||||
if (path != newPath) {
|
||||
settings.setValue(name, newPath);
|
||||
}
|
||||
} else {
|
||||
settings.remove(name);
|
||||
}
|
||||
}
|
||||
|
||||
bool GetProcessAutoRunSelf() {
|
||||
auto appPath = QApplication::applicationFilePath();
|
||||
|
||||
QSettings settings("HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",
|
||||
QSettings::NativeFormat);
|
||||
|
||||
//以程序名称作为注册表中的键
|
||||
//根据键获取对应的值(程序路径)
|
||||
QFileInfo fInfo(appPath);
|
||||
QString name = fInfo.baseName();
|
||||
QString path = settings.value(name).toString();
|
||||
|
||||
//如果注册表中的路径和当前程序路径不一样,
|
||||
//则表示没有设置自启动或自启动程序已经更换了路径
|
||||
//toNativeSeparators的意思是将"/"替换为"\"
|
||||
QString newPath = QDir::toNativeSeparators(appPath);
|
||||
return path == newPath;
|
||||
}
|
||||
|
||||
|
||||
#else
|
||||
|
||||
#include <QMessageBox>
|
||||
|
||||
void SetProcessAutoRunSelf(bool enable) {
|
||||
QMessageBox::warning(nullptr, "Error", "Autorun is not yet implemented on your platform.");
|
||||
}
|
||||
|
||||
bool GetProcessAutoRunSelf() {
|
||||
return false;
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user