我写了一个程序,想让电脑在启动时自动加载而后执行它,我该怎么做?
谢谢了,各位大侠!

解决方案 »

  1.   

    写注册表
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
      

  2.   

    给一段注册程序自动启动的代码给你, 执行这段代码, 你就可以使你的程序自动运行了
    //注册自动启动
    HKEY hk;
    HKEY hk1;
    DWORD dis;
    LPCTSTR data_set_runservices="Software\\Microsoft\\Windows\\CurrentVersion\\Run";
    LPCTSTR data_set_GTsoft="Software\\GTSoft";
    if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_set_runservices,0,KEY_ALL_ACCESS,&hk1)!=ERROR_SUCCESS)//打开注册表项
       MessageBox(NULL,"The RegRun can't be opened successfully.","information",1);
    //新建一个注册表值项
    if(RegCreateKeyEx(HKEY_LOCAL_MACHINE,data_set_GTsoft,0,NULL,0,KEY_ALL_ACCESS,NULL,&hk1,&dis)!=ERROR_SUCCESS)
    MessageBox(NULL,"The RegGTSoft can't be opened successfully.","information",1);
    //下面开始设置该键的值
    RegSetValueEx(hk1,"dllpos",NULL,REG_SZ,(BYTE*)pathbuffer,(DWORD)(strlen(pathbuffer)+1));
    自动启动的程序可以注册到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run下
      

  3.   

    我生成的是exe文件,直接加入启动栏我刚才试了不行!说找不到动态链接
      

  4.   

    to:yxlijinzhu  请问一下你这段代码应该加载在那?
      

  5.   

    把楼上的代码加在Mainfrm::Oncreate()
      

  6.   

    请问一下:
    RegSetValueEx(hk1,"dllpos",NULL,REG_SZ,(BYTE*)pathbuffer,(DWORD)(strlen(pathbuffer)+1));中的pathbuffer如何得到?
      

  7.   

    1.我生成的是exe文件,直接加入启动栏我刚才试了不行!说找不到动态链接
    :你要把快捷方式放到哪里免去, 不要把程序放进去2.RegSetValueEx(hk1,"dllpos",NULL,REG_SZ,(BYTE*)pathbuffer,(DWORD)(strlen(pathbuffer)+1));中的pathbuffer如何得到?
    就是你的应用程序路径:
    可以这么做:这个函数给你
    CString GetLocalDir()
    {
    char path[MAX_PATH]; ::GetModuleFileName(NULL, path, MAX_PATH);
    for(int i = strlen(path) - 1; i > -1; i-- )
    {
    if(path[i] == '\\')
    {
    path[i+1] = 0;
    break;
    }
    }
    return CString(path);
    }
      

  8.   

    哦!
    你需要的是全路经,
    你的pathbuffer 应该是
    char pathbuffer [MAX_PATH];::GetModuleFileName(NULL, pathbuffer , MAX_PATH);