代码之家  ›  专栏  ›  技术社区  ›  Ravi shankar

如何在Visual C++中在Win32 API上运行Windows启动应用程序

  •  2
  • Ravi shankar  · 技术社区  · 15 年前

    我在Visual C++中有一个窗口(Win32 API)应用程序。我没有使用MFC。我必须在Windows启动时运行我的应用程序。我正在使用Windows 7和Visual Studio 2008。有人能帮我完成上述任务吗?事先谢谢。

    7 回复  |  直到 6 年前
        1
  •  2
  •   mxcl    11 年前

    最简单的方法是创建注册表项:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

    (将代码插入安装程序以添加密钥。)

    如果你在 HKEY_LOCAL_MACHINE ,它将应用于机器的所有用户。如果你在 HKEY_CURRENT_USER ,则程序仅在启动时自动运行给该用户。

        2
  •  6
  •   Victor    6 年前

    下面是一些示例代码:

    HKEY hkey = NULL;
    RegCreateKey(HKEY_CURRENT_USER, L"Software\\Microsoft\\Windows\\CurrentVersion\\Run", &hkey);
    RegSetValueEx(hkey, L"myapp", 0, REG_SZ , (BYTE*)path, (wcslen(path)+1)*2);
    
        3
  •  1
  •   miPwn    15 年前

    只需将其添加到注册表中的hkey_local_machine\software\microsoft\windows\currentversion\run key。

        4
  •  1
  •   m-sharp    15 年前

    autoruns 由SysInternals(现在是Microsoft)提供。它将向您展示Windows启动进程的多种方式。您将要签出“登录”选项卡,该选项卡显示多个文件和注册表设置,使您能够在登录时启动资料。服务和驱动程序在系统启动时启动(不需要登录)。bootsexecute允许您在启动时运行可能不是您想要的东西。

    其余的选项卡将向您展示如何钩住其他各种系统进程来加载代码。难怪Windows对于恶意软件作者来说已经成熟了,特别是当你作为根用户运行时。

        5
  •  1
  •   Jithin PG    14 年前

    如果在hkey_local_machine下创建注册表项,则强制本地计算机上的所有用户启动应用程序。在hkey_current_用户密钥下写入条目,以便在启动此应用程序时仅针对当前登录(活动)用户。

        6
  •  1
  •   Prasaathviki    10 年前
    CString csPath ="your path";
    HRESULT hres =  RegCreateKey(HKEY_CURRENT_USER, L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", &hkey);
    hres = RegSetValueEx(hkey, L"your app", 0, REG_SZ , (BYTE*)csPath.GetBuffer(), (wcslen(csPath)+1)*2);
    
        7
  •  0
  •   RvdK    15 年前

    不知道win32,但如何使用简单的程序快捷方式:

    C:\文档和设置\\开始 菜单\程序\启动

    (或使用所有用户而不是用户)