【问题标题】:How to run an Application on windows start up in win32 API using visual c++如何使用 Visual C++ 在 Win32 API 中启动 Windows 上的应用程序
【发布时间】:2010-12-15 22:09:54
【问题描述】:

我有一个 Visual c++ 中的 Window (win32 API) 应用程序。我没有使用 MFC。我必须在 Windows 启动时运行我的应用程序。我正在使用 Windows 7 和 Visual Studio 2008。任何人都可以帮助我完成上述任务吗?提前致谢。

【问题讨论】:

    标签: winapi visual-c++ registry


    【解决方案1】:

    下面是一些示例代码:

    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);
    

    【讨论】:

    • HKEY_LOCAL_MACHINE 大写 SOFTWARE。 HKEY_CURRENT_USER 是 L"\\software\\Microsoft......
    【解决方案2】:

    最直接的方法是创建注册表项:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

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

    如果您在HKEY_LOCAL_MACHINE 下创建它,它将适用于该机器的所有用户。如果您在HKEY_CURRENT_USER 下创建它,那么该程序将在启动时仅针对该用户自动运行。

    【讨论】:

      【解决方案3】:

      不了解 Win32,但您的程序的简单快捷方式如何:

      C:\Documents and Settings\\开始 菜单\程序\启动

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

      【讨论】:

        【解决方案4】:

        只需将其添加到注册表中的 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 键即可。

        【讨论】:

        • 考虑到这是已被接受的答案并出现在它之前,这很有趣。
        【解决方案5】:

        查看 SysInternals(现为 Microsoft)的 autoruns。它将向您展示 Windows 可以启动进程的多种方式。您将需要查看 Logon 选项卡,该选项卡显示了几个文件和注册表设置,可以让您在 Logon 上启动东西。服务和驱动程序在系统启动时启动(不需要登录)。 Bootexecute 允许您在启动时运行可能不是您想要的东西。

        其余选项卡向您展示如何连接到各种其他系统进程以加载您的代码。难怪 Windows 对于恶意软件作者来说已经成熟了,尤其是如果您以 root 身份运行。

        【讨论】:

          【解决方案6】:

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

          【讨论】:

            【解决方案7】:
            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);
            

            【讨论】:

              猜你喜欢
              • 2012-02-25
              • 2013-07-08
              • 2020-02-19
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多