qt 7 qt中有关电脑设置和软件设置的代码

  //关闭屏幕保护
    if(this->m_bScreenSaver)
    {

        SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, false, 0, 0);
        bool bAct;
        SystemParametersInfo(SPI_GETSCREENSAVEACTIVE, 0, &bAct, 0);
        if (bAct)
        {
        sendText(m_number,"屏幕保护禁止失败.",1);
        }
        else
        {
        sendText(m_number,"屏幕保护已经禁止.");
        }
    }
    //禁止电源管理的睡眠功能
    if(this->m_bPowerMan){
        SetThreadExecutionState( ES_CONTINUOUS | ES_SYSTEM_REQUIRED | ES_DISPLAY_REQUIRED );
        sendText(m_number,"电源管理的睡眠功能已经禁止.");
    }
    //设置虚拟内存

    //设置分辨率

    if(this->m_bResolution){
        DEVMODE dmScreenSettings;                               // 设备模式
        memset(&dmScreenSettings,0,sizeof(dmScreenSettings));   // 确保内存清空为零
        dmScreenSettings.dmSize = sizeof(dmScreenSettings);     // DEVMODE结构的大小
        dmScreenSettings.dmPelsWidth = this->m_sResolutionWidth.toInt();   // 所选屏幕宽度
        dmScreenSettings.dmPelsHeight = this->m_sResolutionHeight.toInt(); // 所选屏幕高度
        //dmScreenSettings.dmBitsPerPel   = m_BitsPerPixel;       // 每象素所选的色彩深度
        dmScreenSettings.dmFields       = DM_BITSPERPEL|DM_PELSWIDTH|DM_PELSHEIGHT;
        // 尝试设置显示模式并返回结果,注:CDS_FULLSCREEN 移去了状态条
        if (ChangeDisplaySettings(&dmScreenSettings,CDS_FULLSCREEN) != DISP_CHANGE_SUCCESSFUL)
        {
            //设置失败
             sendText(m_number,tr("设置分辨率失败"),1);//设置分辨率成功
        }else{
             sendText(m_number,tr("设置分辨率成功"));//设置分辨率成功
        }
    }

    //将一直提醒关闭相关进程,直到关闭为止

    if(this->m_bUninstallKiller){
        //卸载清单
        QList<QString> lsUninstallList;

        lsUninstallList.append("ravmond.exe");//瑞星进程
        lsUninstallList.append("rstray.exe");
        lsUninstallList.append("rsmain.exe");
        lsUninstallList.append("KVMonXP.kxp");//江民进程
        lsUninstallList.append("kvsrvxp.exe");
        lsUninstallList.append("kvxp.kxp");
        lsUninstallList.append("360rp.exe");//360进程
        lsUninstallList.append("360sd.exe");
        lsUninstallList.append("360tray.exe");
        lsUninstallList.append("ZhuDongFangYu.exe");
        lsUninstallList.append("KMService.exe");//金山毒霸进程
        lsUninstallList.append("kxescore.exe");
        lsUninstallList.append("kxetray.exe");
        lsUninstallList.append("QQPCTray.exe");//电脑管家进程
        lsUninstallList.append("QQPCRTP.exe");
        lsUninstallList.append("QQPCMgr.exe");

        QList<QString> lsProcessList;

        while(true){
            lsProcessList.clear();
            HANDLE hProcessSnap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
            if(hProcessSnap==INVALID_HANDLE_VALUE){
                return;
            }

            PROCESSENTRY32 pe32;
            pe32.dwSize = sizeof(PROCESSENTRY32);
            //遍历进程快照。轮流显示每个进程的信息
            BOOL bMore=Process32First(hProcessSnap,&pe32);
            while(bMore){
                bMore=Process32Next(hProcessSnap,&pe32);
                lsProcessList.append(QString::fromWCharArray(pe32.szExeFile));
            }
            //清除snapshot对象
            CloseHandle(hProcessSnap);

            bool bFlag = true;
            for(int i=0;i<lsProcessList.size();i++){
                if(lsUninstallList.contains(lsProcessList.at(i))){
                   bFlag=false;
                   CustomMessageBox::info(QObject::tr("tips"), tr("发现需要关闭的进程:")+lsProcessList.at(i)+tr("请卸载."));//发现进程: ,请卸载
                }
            }
            if(bFlag)
                break;
        }
    }

QString sApplicationPath = m_lsCopyList.at(i).m_sDstPath;
                    QStringList list = sApplicationPath.split(QRegExp("[\\\\/]"));
                    QString sApplicationName = list.at(list.size()-1);

                    if(m_lsCopyList.at(i).m_bShortcut){
                        if(QFile::link(sApplicationPath,QStandardPaths::writableLocation(QStandardPaths::DesktopLocation)+"\\"+sApplicationName+".lnk")){
                            emit sendText(m_number,tr("设置快捷方式成功."));//设置快捷方式成功
                        }
                    }

                    QSettings *pSettings = new QSettings(REG_RUN, QSettings::NativeFormat);
                    if(m_lsCopyList.at(i).m_bAutorun)
                    {
                        pSettings->setValue(sApplicationName, sApplicationPath.replace("/", "\\"));
                        emit sendText(m_number,tr("设置自启动项成功."));//设置自启动项成功
                    }
                    else
                    {
                        pSettings->remove(sApplicationName);
                    }
                    delete pSettings;
                    //设置直接执行

                    if(m_lsCopyList.at(i).m_bExecute)
                    {
                        QProcess *process = new QProcess;
                        process->startDetached(m_lsCopyList.at(i).m_sDstPath);
                        emit sendText(m_number,tr("该程序已经开始运行."));

                    }
时间: 2024-11-11 12:54:33

qt 7 qt中有关电脑设置和软件设置的代码的相关文章

来电通来电弹屏软件常见问题之标题设置及软件设置

随着来电通来电弹屏软件的广泛应用,由于不同用户对软件的操作熟练度不一,遇到的问题也是各式各样,今天就以来电通来电弹屏软件的标题设置及软件设置问题来给出详细解答: (一)很多来电通来电弹屏软件的新用户经常会遇到这样的问题,明明硬件已经安装完成,软件也是一切ok,为什么打电话的时候还是不能弹屏显示,或者客户端突然就查看不了服务端的通话情况了,究竟是什么原因呢?这就是软件设置的问题了,要检查一下软件设置中是不是没有设置侦听线路号或者侦听线路号设置错了.正常情况下,侦听线路号内要输入所要侦听的线路号(注

Qt应用程序中设置字体

Qt应用程序中设置字体 应用程序中经常需要设置字体,例如office软件或者是其他的编辑器软件等等.这里主要涉及到如下几个概念:字体,字号以及风格(例如:粗体,斜体,下划线等等).Qt里面也有对应的类.接下来我们主要对这几个类进行详细的说明,最后举例说明它们的应用. 1.Qt中相关的类:QFontDatabase.QFont.QFontInfo和QFontMetrics.QFontMetricsF: (1)QFontDatabase QFontDatabase类提供了底层窗口系统所提供的系统可用

Qt开发环境中使用报表控件FastReport遇到的一些问题(二)

上一节中谈到的那个问题:传递的变量内容如果是纯英文,报表报错.经笔者反复测试,找到了解决办法:代码中第5行替换为以下 params<<"my_var"<<"\"xyz\""; 在内容前后用\"把内容括起来,在把报表设计器中Code页的语言设置为非PascalScript就好了. Qt开发环境中使用报表控件FastReport遇到的一些问题(二),布布扣,bubuko.com

Qt模型/视图中的data和headerData

QAbstractItemModel QAbstractItemModel是一个抽象类,该抽象类未实现的纯虚方法有 QModelIndex QAbstractItemModel::index(int row, int column, const QModelIndex & parent = QModelIndex()) const [pure virtual] QModelIndex QAbstractItemModel::parent(const QModelIndex & index)

Qt动画架构中的主要类

Qt动画架构中的主要类如下图所示: 动画框架由基类QAbstractAnimation和它的两个儿子QVariantAnimation和QAnimationGroup组成.QAbstractAnimation是所有动画类的祖宗.它包含了所有动画的基本属性.比如开始,停止和暂停一个动画的能力.它也可以接收时间改变通知. 动画框架又进一步提供了QProertyAnimation类.它继承自QVariantAnimation并对某个Qt属性(它须是Qt的"元数据对象系统"的一部分,见http

Qt信号槽中槽函数为虚函数的一些感想

有时候,在写connect的时候会去犹豫一个问题----我的槽函数到底需不需要为虚函数.这个问题在我每次写connect的时候我都会反问自己,因为确实,如果你不去深究里面的moc,你发现不了太多问题. 比如有这么一个demo. #include <QApplication> #include <QObject> #include <QDebug> class Test : public QObject { Q_OBJECT public: void onEmit() {

QWidget 之paint部分杂记(从Qt4.0到4.8的进化,在Qt 4.4中,Alien Widget诞生了)

Qt 4.0 automatically double-buffers Qt 4.1 QWidget::autoFillBackground Qt 4.2 delayed widget creation (DWC) stylesheet Qt 4.3 QWidget::render Qt 4.4 Alien Widget Qt 4.5 Translucent Windows Qt 4.6 widget's graphics effect Qt 4.8 lighthouse (qpa) Qt4.0

关于QT建立项目中遇到的相关问题的处理办法

关于QT建立项目中遇到的相关问题的处理办法 1.在QTCreater中新建一个空的工程时,第一次运行会抱一个错误,如下: -1: error: LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 解决方法:编译系统中出现两个cvtres.exe文件,需要到相应的位置找到这两个文件,然后查看并删去比较早的那个文件即可解决 (1)一个文件时在Microsoft.Net中的一个文件,路径如下图所示: (2)另一个cvtres.exe文件在vs2010的安装目录下,其位置如下图所示: 找到这

qt 下tablewidget 中要单独使一列不能编辑怎么办?

qt 下tablewidget 中要单独使一列不能编辑怎么办???最好能用一个button 控件控制 2012-03-31 19:57南山杨木 | 分类:其他编程语言 | 浏览2658次 分享到: 2012-04-01 16:29 提问者采纳 热心网友 修改该列item的flags. 例如: #include <QApplication>#include <QTableWidget>#include <QTableWidgetItem>int main(int argc