VC++ 编程实现开机自启动

编写局域网监控系统时,需要使客户端程序开机自启动,按下面步骤编程实现:

1.在主对话框类中添加成员函数,写注册表,设置开机自启动:

void CClientDlg::SetAutoRun(BOOL bAutoRun)
{
    HKEY hKey;
    CString strRegPath = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";//找到系统的启动项
    if (bAutoRun)
    {
        if (RegOpenKeyEx(HKEY_CURRENT_USER, strRegPath, 0, KEY_ALL_ACCESS, &hKey) == ERROR_SUCCESS) //打开启动项
        {
            TCHAR szModule[_MAX_PATH];
            GetModuleFileName(NULL, szModule, _MAX_PATH);//得到本程序自身的全路径
            RegSetValueEx(hKey,"Client", 0, REG_SZ, (const BYTE*)(LPCSTR)szModule, strlen(szModule)); //添加一个子Key,并设置值,"Client"是应用程序名字(不加后缀.exe)
            RegCloseKey(hKey); //关闭注册表
        }
        else
        {
            AfxMessageBox("系统参数错误,不能随系统启动");
        }
    }
    else
    {
        if (RegOpenKeyEx(HKEY_CURRENT_USER, strRegPath, 0, KEY_ALL_ACCESS, &hKey) == ERROR_SUCCESS)
        {
            RegDeleteValue (hKey,"Client");
            RegCloseKey(hKey);
        }
    }
}

2.在对话框初始化函数OnInitDlg中调用上面的函数:

BOOL CClientDlg::OnInitDialog()
{
    CDialog::OnInitDialog();

    // Add "About..." menu item to system menu.
             .
             .
             .
        SetAutoRun(TRUE);//设置开机自动启动

    return TRUE;
}

编译运行,当你重启电脑时,程序就自动启动了。

时间: 2024-10-29 02:36:33

VC++ 编程实现开机自启动的相关文章

VC++ 设置软件开机自启动的方法

0  概述 软件开机自启动是比较常用的做法,设置方法也有好几种. 1  使用者模式 在"开始菜单"的所有程序中有个"启动"文件夹,可以将需要设置为开机启动的应用程序放在这个文件夹中.但是,这样做存在不足:"启动"文件夹路径在每台电脑有可能是不同的,没法做到一劳永逸. 同时,如果要禁止程序开机启动,可将"启动"文件夹中对应的程序文件移除,也可以"Win+R"输入"msconfig"进行手动

玩转VC++实现程序开机运行及注册表修改

 一.方案 要实现Windows程序开机运行,需要在注册表中相关位置加入键值.所谓的键可以是你程序的名称,值就是你程序的所在目录.所谓的相关位置有两处: 主键HKEY_LOCAL_MACHINE,Software\Microsoft\Windows\CurrentVersion\Run下. 主键HKEY_CURRENT_USER, Software\Microsoft\Windows\CurrentVersion\Run下. 区别就是前者针对机器上所有用户,而后者只针对当前用户. 在编程中对

C#实现软件开机自启动原理与代码

1.软件自启动原理 软件自启动的原理要从Windows的注册表聊起,在Windows操作系统下,主要有2个文件夹和8个注册表键项控制程序的自启动,这部分的详细介绍可以参看博客http://www.cnblogs.com/fukajg/archive/2012/08/10/2631250.html.本程序通过“Run”键值实现,Run键值是自启动程序最常见的地方.它的位置在[HKEY_CURRENT_USER\Softvvare\Microsoft\Windows\CurrentVersion\R

Ubuntu14.04下安装redis-3.2.0以及开机自启动

去官网下载Redis-3.2.0.tar.gz,将redis-3.2.0.tar.gz放入/opt目录下 解压redis-3.2.0.tar.gz [email protected]:/opt$ sudo tar -zxvf redis-3.2.0.tar.gz 编译redis [email protected]:/opt$ cd redis-3.2.0/ [email protected]:/opt/redis-3.2.0$ sudo make 安装 [email protected]:/op

linux下chkconfig设置开机自启动

某些新安装服务或者脚本需要开机自启动,可以有2种办法进行设置:一是利用chkconfig进行设置,二是将启动文件添加到rc.local中开机自起. chkconfig设置方法简介: 1)将启动文件cp到 /etc/init.d/或者/etc/rc.d/init.d/(前者是后者的软连接)下 2)vim 启动文件,文件前面务必添加两行,否侧会提示chkconfig不支持 #chkconfig: 35 20 80 分别代表运行级别,启动优先权,关闭优先权 #description: http ser

Android笔记之 开机自启动

在项目中用到开机自动运行功能,因此学习了下,在此作为笔记记录下. 主要是以下4个步骤: 1.原理了解: 通过搜查资料发现,当Android启动时,会发出一个系统广播,内容为ACTION_BOOT_COMPLETED,它的字符串常量表示为android.intent.action.BOOT_COMPLETED,因此我们只需要在自己的应用中接收这个广播,然后启动APP即可. 2.编写接收器 既然是接收广播,必然是要用广播接收器,因此新建一个继承自广播BroadcastReceiver的类来专门接收上

Linux将服务设置为开机自启动的方法小结

Linux设置为开机自启动的几种方法小结 和Windows一样,Linux也可以将一些服务设置为开机自启动,这样可以避免每次开机都会去打开某一个服带来的麻烦!Linux开机将服务设置为开机自启动的方法大概有一下几种: 一.ntsysv图形界面设置 ntsysv -> NeWT + SysV ,它是使用 newt 库的 SysV 风格的 runlevel 配置工具,Red Hat公司遵循GPL规则所开发的程序,它具有互动式操作界面,您可以轻易地利用方向键和空格键等,开启,关闭操作系统在每个执行等级

开机自启动设置方法。

方法一:将exe的快捷方式添加到"启动"文件夹,实现开机自启动 打开运行功能(Win+R),在"运行"栏中输入:Shell:Startup 然后回车.打开"启动"文件夹. ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 将目标 exe 可执行文件 的快捷方式 放到这个文件夹中.即可

linux添加开机自启动脚本示例详解

来源: linux添加开机自启动脚本示例详解 linux下(以RedHat为范本)添加开机自启动脚本有两种方法,先来简单的; 一.在/etc/rc.local中添加如果不想将脚本粘来粘去,或创建链接什么的,则:step1. 先修改好脚本,使其所有模块都能在任意目录启动时正常执行;step2. 再在/etc/rc.local的末尾添加一行以绝对路径启动脚本的行;如:$ vim /etc/rc.local#!/bin/sh## This script will be executed *after*