首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

Qt添加开机启动项

2013-01-02 
紧急求助Qt添加开机启动项以下是添加开机启动项的函数,最近发现不能将启动项添加到注册表中去(以前是可以

紧急求助 Qt添加开机启动项
以下是添加开机启动项的函数,最近发现不能将启动项添加到注册表中去(以前是可以的),总是报错QSettings: failed to set subkey "SPRunSysterm": 
各位大大帮忙分析以下是哪里的问题?


void SetRunParamentDlg::on_bBootStart_clicked(bool checked)//开机自动运行
{
    QString path = pwnd->sProjectPath;
    qDebug() << "path = "<< path;
    QString sexetPath = QCoreApplication::applicationDirPath();//当前目录
    sexetPath = sexetPath.replace("/","\");
    qDebug() << "sexetPath = "<< sexetPath;

    if(checked)
    {
        QFile file("RunSystem.bat");
        if (!file.open(QIODevice::Truncate | QIODevice::ReadWrite))
        {
            QMessageBox::warning(NULL, tr("保存文件"),
                                 tr("无法保存文件 %1:\n %2")
                                 .arg(file.errorString()));
        }
        QTextStream out(&file);

        QString sCmd=""";//sexetPath+"\\SKMonitorSys.exe ";
        //sCmd.append(sexetPath+"\\SKMonitorSys.exe");
        sCmd.append(""");
        sCmd.append(" ");

        sCmd.append(""");
        sCmd.append(path);
        sCmd.append(""");

        sCmd.append(" ");
        QString sTmp=QString::number(is_tanslator);
        sCmd.append(sTmp);

        out << sCmd;
        qDebug() << "sCmd = "<< sCmd;
        file.close();

        QDir::setCurrent(sexetPath);
        path.clear();
     
        path = sexetPath+"\\RunSystem.bat";
        qDebug() << "path = "<< path;
        QSettings *reg = new QSettings("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",
        QSettings::NativeFormat);
        reg->setValue("RunSysterm",QVariant(path));
        delete reg;

    }
    else
    {
        //删除RunSystem.bat"
        QFile::remove(sexetPath+"\\RunSystem.bat");


        //删除注册表
        QSettings *reg = new QSettings("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",
        QSettings::NativeFormat);
        reg->remove("RunSysterm");
        delete reg;
    }
}


[解决办法]
会不会是Windows7系统,缺少管理员权限呢?
[解决办法]
打开注册表看看路径对不对

热点排行