我想在我的应用程序中添加一个选项,类似于 Skype 的选项“在我的计算机启动时运行 Skype”。
Skype 没有在开始菜单文件夹的“自动启动应用程序”上,我想有同样的效果。
请注意,此问题的一个答案建议在此处添加一个键:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
但我在我的机器上检查了,Skype 不在那里,所以使用了另一种方法。
Skype 通过注册表项安装,但它位于 HKEY_CURRENT_USER 中,而不是 HKEY_LOCAL_MACHINE
这允许基于每个用户安装或不安装 Skype。使用 HKLM 将为所有用户自动启动。
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
如果您在运行窗口中键入“msconfig”并查看启动选项卡,您可以在“位置”列中看到“everthing”从哪里开始。我不使用Skype,但我猜它会在注册表中
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
您只需要在其中为您的应用程序添加一个注册表项(如果用户取消选中该框,则将其删除)
您可以使用TRegistry
该类来帮助您读取和写入注册表。
看到这个问题。问题是关于 C#,但它只涉及编写注册表值。将其转换为 Delphi 将很容易。
只需运行 msconfig 并选择启动选项卡。您将在使用的注册表项旁边看到应用程序。
奇怪的是,当我在没有提升的情况下运行 regedit 时,也看不到HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\Skype的值。但是如果我提升运行它,那么值就在那里(我猜 Windows 正在播放注册表重定向)。
最好的