实现开机自动启动

本文介绍如何通过修改注册表设置程序开机自动启动及取消自动启动的方法。首先展示添加注册表信息来实现开机启动的步骤,然后提供删除开机启动项的具体操作。

为了实现开机自动启动,需要操作注册表信息。

1.添加注册表信息

 

添加注册表
#define   KEY_AUTO_RUN _T("Software\\Microsoft\\Windows\\CurrentVersion\\Run") //自动开机启动的注册表的位置
#define   KEY_PROGRAM  _T("your program name");
HKEY   RegEntry;  
int   open   =   RegOpenKeyEx(HKEY_LOCAL_MACHINE,   KEY_AUTO_RUN,   0,   KEY_SET_VALUE,   &RegEntry); 
if(ERROR_SUCCESS == open) 
{
  TCHAR fileName[MAX_PATH
+1];  
   GetModuleFileName(GetModuleHandle(AfxGetApp()
->m_pszAppName), fileName, MAX_PATH);  
   DWORD dwRet 
= RegSetValueEx(RegEntry, KEY_PROGRAM, 0, REG_SZ, (LPBYTE)fileName, strlen(fileName)); 
   
if(dwRet != ERROR_SUCCESS)
   {
  //打印注册表失败操作信息提示
         LPVOID lpMsgBuf;
         FormatMessage( 
                    FORMAT_MESSAGE_ALLOCATE_BUFFER 
| 
                    FORMAT_MESSAGE_FROM_SYSTEM 
| 
                    FORMAT_MESSAGE_IGNORE_INSERTS,
                    NULL,
                    dwRet,
                    MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), 
// Default language
                    (LPTSTR) &lpMsgBuf,
                    
0,
                    NULL 
                    );
         ::MessageBox( 
this->m_hWnd, (LPCTSTR)lpMsgBuf, "注册表操作提示", MB_OK | MB_ICONINFORMATION );
         
// Free the buffer.
         LocalFree( lpMsgBuf );
     }
   RegCloseKey(RegEntry);
}

 

 

2.删除开机自动启动注册表信息

 

删除开机启动注册表信息
#define   KEY_AUTO_RUN _T("Software\\Microsoft\\Windows\\CurrentVersion\\Run") //自动开机启动的注册表的位置

HKEY   RegEntry;  
int   open   =   RegOpenKeyEx(HKEY_LOCAL_MACHINE,   KEY_AUTO_RUN,   0,   KEY_SET_VALUE,   &RegEntry); 
if(ERROR_SUCCESS == open) 
{
    DWORD dwRet 
= RegDeleteValue(RegEntry,   KEY_PROGRAM);  
    
if(dwRet != ERROR_SUCCESS)
    {
        LPVOID lpMsgBuf;
        FormatMessage( 
            FORMAT_MESSAGE_ALLOCATE_BUFFER 
| 
            FORMAT_MESSAGE_FROM_SYSTEM 
| 
            FORMAT_MESSAGE_IGNORE_INSERTS,
            NULL,
            dwRet,
            MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), 
// Default language
            (LPTSTR) &lpMsgBuf,
            
0,
            NULL 
            );
        ::MessageBox( 
this->m_hWnd, (LPCTSTR)lpMsgBuf, "注册表操作提示", MB_OK | MB_ICONINFORMATION );
        
// Free the buffer.
        LocalFree( lpMsgBuf );
    }   
         RegCloseKey(RegEntry);
}

 

 

转载于:https://www.cnblogs.com/hyangshi/archive/2009/12/17/1626314.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值