Delphi:如何创建像 Skype 一样的 Windows 自动启动应用程序?
Posted
技术标签:
【中文标题】Delphi:如何创建像 Skype 一样的 Windows 自动启动应用程序?【英文标题】:Delphi: How to create a Windows autostart application like Skype does? 【发布时间】:2011-03-11 00:41:42 【问题描述】:我想在我的应用程序中添加一个选项,类似于 Skype 的选项“在我的计算机启动时运行 Skype”。
Skype没有在开始菜单文件夹的“自动启动应用程序”上,我也想有同样的效果。
注意,this question 的一个答案建议在此处添加密钥:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
但我在我的机器上查看了,Skype 不在那里,所以使用了另一种方法。
【问题讨论】:
【参考方案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 正在播放注册表重定向)。
最好的
【讨论】:
以上是关于Delphi:如何创建像 Skype 一样的 Windows 自动启动应用程序?的主要内容,如果未能解决你的问题,请参考以下文章
如何像 Skype 一样将 QDialog 粘贴到屏幕边框?
如何在聊天中回复特定消息,就像使用 html css javascript/jquery 的 skype/whatsapp