注册表编程VC 使程序开机自动运行

代码如下:

    void  CAutoRunProDlg::OnSet()

{

      //判断操作系统,如果不是2000、xp、2003,则程序退出

      OSVERSIONINFO os;

      os.dwOSVersionInfoSize=sizeof(OSVERSIONINFO);

      GetVersionEx(&os);

      if(os.dwPlatformId!=VER_PLATFORM_WIN32_NT)

     {

                   AfxMessageBox("本系统不是Window2000、WindowXp或Window2003,本程序不适合运行!");

                   return;

     }

     UpdateData(true);

     if(m_strExe.IsEmpty())

      {

             AfxMessageBox("加载应用程序为空");

             return;

       }

     HKEY  hKey;

    CString   sKeyName;

     unsigned   char  szFilePath[100];

    //打开注册表

     LONG    InRes=RegOpenKeyEX(HKEY_LOCAL_MACHINE,//要打开的目录在HKEY_LOCAL_MACHINEX下

                                  "SOFTWARE//Microsoft//Windows//CurrentVersion//Run",//子目录

                                    0L, //必须取零

                                    KEY_WRITE,//KEY_WRITE是STANDARD_RIGHTS_WRITE,KEY_SET_VALUE ,KEY_CREATE         _SUB_KEY                     访问权限组合

                                    &hKey

);

             lsstrcpy((char*)szFilePath,LPCTSTR(m_strExe));

             //假如RegOpenKeyEx成功,返回值为ERROR_SUCCESS

             if(ERROR_SUCCESS==InRes)

             {

               //把应用程序路径加入到RUN键下面

               InRe=RegSetValueEx(hKey,

                                                 LPCTSTR(sKeyName),

                                                 0,

                                                 REG_Sz);

               //假如RegSetValueEx成功,返回值为Error_SUCCESS

                if(ERROR_SUCCESS==InRes)

               {

                         AfxMessageBox("已经成功加载了此应用程序!");

                         RegClosekey(hKey);   //关闭hKey

                }

                else

                          AfxMessageBox("不能加载此应用程序!");

             }

                else

               {

                    AfxMessageBox("不能加载此应用程序!");

                }

 

 

 

 

}

你可能感兴趣的:(编程,OS,XP)