我正在创建C ++应用程序,并希望在启动Windows时为我的用户提供启动应用程序的选项。首先要注意的是我使用Windows注册表来设置它,但不知道在哪里写和写什么。此外,用户在运行我的应用程序时是否需要具有管理员权限才能在需要的时候在Windows注册表的哪一部分写入?
答案 0 :(得分:2)
您需要使用Software\Microsoft\Windows\CurrentVersion\Run
密钥(有关其他信息,请参阅MSDN)。 (字符串)值应该是应用程序的路径。
您不需要管理权限才能在HKEY_CURRENT_USER
中创建它,但您的应用程序只会在当前用户的会话中启动。如果您需要为所有用户自动启动,请使用具有提升权限的HKEY_LOCAL_MACHINE
配置单元!
答案 1 :(得分:1)
注册表是隐藏的方式; “程序”菜单中的“启动”文件夹是用户可见的方式。见CSIDL_STARTUP
。无需管理员权限,它是每用户设置。 CSIDL_COMMON_STARTUP
需要管理员权限。
答案 2 :(得分:1)
您可以添加应用程序以通过注册表启动。 我为你写了一个示例函数
public void AddToStartup(string name)
{
RegistryKey rkApp = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
rkApp.SetValue(name + ".exe", Application.ExecutablePath.ToString());
}