• 10980阅读
  • 15回复

WINDOWS上如何开机启动我自己做的QT程序 [复制链接]

上一主题 下一主题
离线home
 
只看楼主 倒序阅读 楼主  发表于: 2010-07-07
— 本帖被 XChinux 执行加亮操作(2010-10-26) —
如题
离线计划

只看该作者 1楼 发表于: 2010-07-08
好问题,我也想学习一下这个;还有一个是qt中的哪个函数可以调用编译生成的.exe程序。
好好学习,天天向上。
离线leohui1988

只看该作者 2楼 发表于: 2010-07-08
开机自启动的话可以修改注册表
离线home
只看该作者 3楼 发表于: 2010-07-08
QT里面有提供修改注册表的函数吗
哪个类哦
只看该作者 4楼 发表于: 2010-07-10
直接把编译之后生的EXE文件(debug目录),拖入开始----启动目录下就行了。


当然,我承认这是没有技术含量的
离线home
只看该作者 5楼 发表于: 2010-07-10
谢谢楼上的大虾哈,不过开始----启动目录在哪里啊?

还有就是哪位大虾可以指教指教如何在程序中用代码注册啊
离线napier

只看该作者 6楼 发表于: 2010-07-10
[Qt Topic] – 全局热键、托盘功能和随机启动

http://blog.csdn.net/jasonblog/archive/2010/04/25/5525826.aspx
离线home
只看该作者 7楼 发表于: 2010-07-12
楼上的大佬
怎么你的源码里面没有写setAutoRun方面的函数呀
离线home
只看该作者 8楼 发表于: 2010-07-12
苍天啊
难道QT就没有操作注册表方面的函数吗
用WINDOWS自带的好麻烦哦,还不能跨平台
离线napier

只看该作者 9楼 发表于: 2010-07-13
注册表本身就是是 Windows 特有的,Linux 没有,你能指望这个功能可以跨平台么....
Windows 开机启动属于 Windows 编程的范畴,应该在系统 API 中寻求这个功能,而不是在 Qt 中寻找,方向错了...
至于上面提供的代码,我也不知道他为什么没补全,应该去问作者... 不过我看来他已经提供了思路。
离线home
只看该作者 10楼 发表于: 2010-07-27
谢谢
离线zhxh4777
只看该作者 11楼 发表于: 2010-07-29
好像QSettings可以操作注册表。。。
离线zwwjsj
只看该作者 12楼 发表于: 2010-10-26
QSettings,多看看帮助文档
离线lxbin2003

只看该作者 13楼 发表于: 2010-11-28
    QString sApp=app.applicationFilePath();
    sApp.replace("/","\\");
    QSettings *settings = new QSettings("HKEY_LOCAL_MACHINE", QSettings::NativeFormat);
    if(settings)
        settings->setValue("SOFTWARE/Microsoft/Windows/CurrentVersion/Run/myapp", QVariant(sApp));
离线wangruijia
只看该作者 14楼 发表于: 2010-12-23
dddddddddddddddddddddd好问题
离线downstairs

只看该作者 15楼 发表于: 2011-03-31
主要原理是修改Windows的注册表来实现的,Qt的QSettings提供了访问ini,注册表的功能。

//读取注册表的信息,让程序自启动

void MainWindow::Readregedit(bool isAutoRun)
{
    QSettings *reg=new QSettings("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft"
                                 "\\Windows\\CurrentVersion\\Run",QSettings::NativeFormat);
    //开机自动运行
    if (isAutoRun)
    {
        reg->setValue("app",QApplication::applicationFilePath());
    }
    else
    {
        reg->setValue("app","");
    }
}
//开机自启动,主窗体隐藏

    if ( argc>1 && (argv[1]==(char *)"\\min" ))
    {
        w.hide();
    }
    else
    {
        w.showNormal();
    }
PS:开机启动的时候,小托盘图标有可能不能显示出来,可以利用资源文件里面的图标,
     作为小托盘,这样就可以解决这个问题。
喜爱编程的猫头鹰
快速回复
限100 字节
 
上一个 下一个