【问题标题】:Delphi: How to create a Windows autostart application like Skype does?Delphi:如何创建像 Skype 一样的 Windows 自动启动应用程序?
【发布时间】:2011-03-11 00:41:42
【问题描述】:

我想在我的应用程序中添加一个选项,类似于 Skype 的选项“在我的计算机启动时运行 Skype”。

Skype没有在开始菜单文件夹的“自动启动应用程序”上,我也想有同样的效果。

注意,this question 的一个答案建议在此处添加密钥:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

但我在我的机器上查看了,Skype 不在那里,所以使用了另一种方法。

【问题讨论】:

    标签: delphi skype autostart


    【解决方案1】:

    看到这个question。问题是关于 C#,但它只涉及编写注册表值。将其转换为 Delphi 将很容易。

    【讨论】:

    • 我查了一下:第一个答案(批准的)只是为了在开始菜单的自动启动应用程序中添加一个链接,所以这不是我想要实现的。第二个更有趣,但我检查并发现 Skype 不在我机器的注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 中,所以使用了其他东西。我将更新我的问题添加此信息。谢谢。
    【解决方案2】:

    如果您在运行窗口中键入“msconfig”并查看启动选项卡,您可以在 Location 列中看到“everthing”从哪里开始。 我不使用Skype,但我猜它会在注册表中

    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

    您只需在其中为您的应用添加一个注册表项(如果用户取消选中该框,则将其删除)

    您可以使用TRegistry 类来帮助您读取和写入注册表。

    【讨论】:

    • 感谢 msconfig 的建议。是的,skype 是不是我没有创建它的原因是它是在用户级别而不是系统级别定义的:HKCU\Software\Microsoft\Windows\CurrentVersion\Run
    【解决方案3】:

    Skype 通过注册表项安装,但它位于 HKEY_CURRENT_USER 中,而不是 HKEY_LOCAL_MACHINE

    这允许根据每个用户安装或不安装 Skype。使用 HKLM 将为所有用户自动启动。

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
    

    【讨论】:

      【解决方案4】:

      只需运行 msconfig 并选择 启动 选项卡。您会在使用的注册表项旁边看到应用程序。

      奇怪的是,当我在没有提升的情况下运行 regedit 时,也看不到 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\Skype 值。但是如果我提升运行它,那么值就在那里(我猜 Windows 正在播放注册表重定向)。

      最好的

      【讨论】:

        猜你喜欢
        • 2014-01-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-16
        相关资源
        最近更新 更多