添加开机启动

This commit is contained in:
才明洋
2018-03-17 18:18:37 +08:00
parent fe6b02327d
commit a17975671e
2 changed files with 35 additions and 6 deletions
+31 -4
View File
@@ -1,7 +1,7 @@
#include "maintray.h"
MainTray::MainTray(QByteArray username, QByteArray password, QObject *parent): QSystemTrayIcon(parent),
menu(new QMenu()),infoMenu(new QMenu()), settings("TurnMeOn", "NEU-Dectect"),
menu(new QMenu()),infoMenu(new QMenu()), settingsMenu(new QMenu()), settings("TurnMeOn", "NEU-Dectect"),
opWindow(settings.value("id",0).toByteArray(), settings.value("password", 0).toByteArray()),
user(username),passwd(password)
{
@@ -36,7 +36,8 @@ MainTray::MainTray(QByteArray username, QByteArray password, QObject *parent): Q
loginAction = new QAction(tr("连接网络"),this);
logoutAction = new QAction(tr("断开网络"),this);
autoLogin = new QAction(tr("自动重连"), this);
optionsAction = new QAction(tr("设置"), this);
optionsAction = new QAction(tr("选项"), this);
bootAction = new QAction(tr("开机启动"), this);
aboutAction = new QAction(tr("关于"), this);
quitAction = new QAction(tr("退出"), this);
@@ -46,6 +47,7 @@ MainTray::MainTray(QByteArray username, QByteArray password, QObject *parent): Q
ipAction = new QAction(tr("IP地址: "),this);
autoLogin->setCheckable(true);
bootAction->setCheckable(true);
connect(loginAction, QAction::triggered, this,[this](){
netctrl->sendLoginRequest();
@@ -59,13 +61,22 @@ MainTray::MainTray(QByteArray username, QByteArray password, QObject *parent): Q
isAutoLogin = set;
settings.setValue("isAutoLogin", set);
});
connect(bootAction, QAction::toggled, this, [this](bool set){
settings.setValue("isOnBoot", set);
setAutoStart(set);
});
connect(optionsAction, QAction::triggered, this, [this](){showOptions();});
connect(aboutAction, QAction::triggered, this, showAbout);
connect(quitAction, QAction::triggered, this,[this](){emit exit();});
autoLogin->setChecked(settings.value("isAutoLogin", true).toBool());
bootAction->setChecked(settings.value("isOnBoot", false).toBool());
infoMenu->setTitle("账户信息");
settingsMenu->setTitle(tr("设置"));
settingsMenu->addAction(optionsAction);
settingsMenu->addAction(bootAction);
infoMenu->setTitle(tr("账户信息"));
infoMenu->addAction(mbAction);
infoMenu->addAction(timeAction);
infoMenu->addAction(balanceAction);
@@ -75,7 +86,7 @@ MainTray::MainTray(QByteArray username, QByteArray password, QObject *parent): Q
menu->addAction(logoutAction);
menu->addAction(autoLogin);
menu->addMenu(infoMenu);
menu->addAction(optionsAction);
menu->addMenu(settingsMenu);
menu->addAction(aboutAction);
menu->addAction(quitAction);
@@ -131,6 +142,22 @@ void MainTray::showAbout()
aboutWindow->show();
}
void MainTray::setAutoStart(bool set)
{
QString application_name = QApplication::applicationName();
QSettings *settings = new QSettings("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run", QSettings::NativeFormat);
if(set)
{
QString application_path = QApplication::applicationFilePath();
settings->setValue(application_name, application_path.replace("/", "\\"));
}
else
{
settings->remove(application_name);
}
delete settings;
}
void MainTray::updataUserInfo(QByteArray id, QByteArray pass)
{
netctrl->setUsername(id);
+4 -2
View File
@@ -10,6 +10,7 @@
#include <QSettings>
#include <QMessageBox>
#include <QTimer>
#include <QApplication>
class MainTray: public QSystemTrayIcon
{
@@ -20,9 +21,9 @@ public:
enum Status {Unknown, Offline, Online, Disconnected};
private:
QMenu *menu, *infoMenu;
QMenu *menu, *infoMenu, *settingsMenu;
QAction *loginAction, *logoutAction, *autoLogin, *optionsAction, *aboutAction, *quitAction;
QAction *mbAction, *timeAction, *balanceAction, *ipAction;
QAction *mbAction, *timeAction, *balanceAction, *ipAction, *bootAction;
NetController *netctrl;
QSettings settings;
OptionsWindow opWindow;
@@ -34,6 +35,7 @@ private:
void handleActivated(QSystemTrayIcon::ActivationReason reason);//处理左键单击
void showOptions(); //显示选项窗口
void showAbout(); //显示关于窗口
void setAutoStart(bool set);
QByteArray user, passwd;
int msgDur = 1000; //通知持续时间