游戏开发论坛

 找回密码
 立即注册
搜索
查看: 856|回复: 0

程序开机启动 wxh zt

[复制链接]

1367

主题

1993

帖子

2118

积分

金牌会员

Rank: 6Rank: 6

积分
2118
发表于 2005-9-5 19:57:00 | 显示全部楼层 |阅读模式
程序开机启动

本代码段是在注册表中的
HKEY_LOCAL_MACHINE
下的Software\\Microsoft\\Windows\\CurrentVersion\\Run
子键下加子键,使程序能够自动运行.


//由于使用了类 CRegKey,所以在使用前得包含头文件  #include <atlbase.h>


函数一:

BOOL  AddAutoRun()    //增加自动运行功能 增加成功返回TRUE
{
   
    CRegKey m_RegKey;
    LPCTSTR lp="Software\\Microsoft\\Windows\\CurrentVersion\\Run";
    //打开键
    if(m_RegKey.Open(HKEY_LOCAL_MACHINE,lp)!= ERROR_SUCCESS)
        return FALSE;
        
    CString sPath;
    //得到程序的路径
    GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);
    sPath.ReleaseBuffer();
    //(sPath,"XXX"))中的XXX表示你在Run下的子键的名字,你可以写成你的程序的名字
    //这里的XXX要和函数二中的XXX要一致哦
   
    if(ERROR_SUCCESS !=m_RegKey.SetValue(sPath,"XXX"))
    {
        m_RegKey.Close();
        return FALSE;
    }
    else
    {
        m_RegKey.Close();
        return TRUE;
    }
   
}
函数二:
BOOL  DelAutoRun()   //删除自动运行功能 删除成功返回TRUE
{
    CRegKey m_RegKey;
    LPCTSTR lp="Software\\Microsoft\\Windows\\CurrentVersion\\Run";
    if(m_RegKey.Open(HKEY_LOCAL_MACHINE,lp)!= ERROR_SUCCESS)
        return FALSE;
    //DeleteValue("XXX"))中的XXX表示你在Run下的子键的名字,你可以写成你的程序的名字
    //这里的XXX要和函数一中的XXX要一致哦
   
    if(ERROR_SUCCESS !=m_RegKey.DeleteValue("XXX"))
    {
        m_RegKey.Close();
        return FALSE;
    }
    else
    {
        m_RegKey.Close();
        return TRUE;
    }
}


使用说明:
(1):由于使用了类 CRegKey,所以在使用前得包含头文件  #include <atlbase.h>
(2):如果在编译的时候,发现宏MAX_PATH没有被声明的话,把它换成数字 260 既可
(3):函数中的 "XXX"为HKEY_LOCAL_MACHINE
下的Software\\Microsoft\\Windows\\CurrentVersion\\Run
子键下加子键的名字,你可以换成你程序的名字,但两个函数中的 "XXX"要 一致

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-27 16:55

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表