windows7中vc++6如何修改注册表实现开机自启动?
我的代码在xp中运行正常,但在windows7中无法正常运行,哪位高手请给出可正常执行的代码?

解决方案 »

  1.   

    win7中,必须加入UAC,win7下权限严格,必须有管理员权限才可以修改注册表启动项。win7下你右键点击exe,选择--以管理员权限运行,就可以了。
      

  2.   

    我不知道楼上是怎么试的,反正我试的几个程序,都不行,全都是添加run子键下注册项。
      

  3.   

    //首先写入注册表,实现自启动
    HKEY lo_phkey;
    if(::RegOpenKey(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", &lo_phkey) ==ERROR_SUCCESS)
    {
    char lca_path[MAX_PATH];
    ::GetModuleFileName(NULL, lca_path, MAX_PATH); 
    ::RegSetValue(lo_phkey, "CPPAss", REG_SZ, lca_path, strlen(lca_path)); 

    ::RegCloseKey(lo_phkey);
      

  4.   

    为什么呢?64位的2003下也没成功,但是写到
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
    下是成功的,但是开机没有自启动,显然这个键下是不起作用的。
    难道没有高人来解决得了吗?
      

  5.   

    ::InsertMenuItem(lo_pParentMnu->m_hMenu, QM_MSGBOX, false,&tmpItem );
    上面插入菜单后,在哪里响应菜单的消息呢?
      

  6.   

    有的版本的win7加到run里根本不起作用。安装完卡巴,360这些可以自启动的软件后,重启机器也不能自动启动。不知道这个版本的win7为什么不能自动启动程序。但可以加到这里HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\ Userinit键。原来的C:\WINDOWS\system32\userinit.exe,千万不能去掉,要不然机器就不能启动了。把要启动的程序加到逗号后面就行。
      

  7.   

    你用程序写进去的?确定是64位操作系统?
    你可以打开注册表看看,你写入的东西,根本就不在 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run 下面。
    Windows 自己给你处理到 HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Run 下面了,那当然启动不了了啊
    请使用KEY_WOW64_64KEY和KEY_WOW64_32KEY明确的指定操作64位注册表项或者32位注册表项...