2014-03-25 53 views
1

我正在创建C++应用程序,并想给我的用户启动Windows时启动我的应用程序的选项。首先要介意的是,我使用Windows注册表来设置,但不知道在哪里写和写什么。此外,用户在运行我的应用程序时需要具有管理员权限,以便能够在需要的地方写入Windows注册表的那一部分?如何在Windows启动时启动应用程序?

+0

你的意思是你想在Windows启动时启动应用程序,或者你想在启动时,用户登录该应用程序? –

回答

2

您需要使用Software\Microsoft\Windows\CurrentVersion\Run密钥(有关更多信息,请参阅MSDN)。 (字符串)值应该是应用程序的路径。

您不需要管理权限就可以在HKEY_CURRENT_USER中创建它,但是您的应用程序只会在当前用户的会话中启动。如果您需要为所有用户自动启动,请使用HKEY_LOCAL_MACHINE配置单元以提升的权限!

+0

谢谢。我认为这会做到。 – Tracer

1

注册表是隐藏的方式;程序菜单中的启动文件夹是用户可见的方式。见CSIDL_STARTUP。不需要管理员权限,这是每个用户的设置。 CSIDL_COMMON_STARTUP需要管理员权限。

+0

但是,然后很难检测到应用程序是否已经启动。 – Tracer

+0

它实际上相当容易,只是一个文件检查。 – MSalters

1

您可以通过注册表添加应用程序来启动。 我写了一个样本函数,你

public void AddToStartup(string name) 
    { 
     RegistryKey rkApp = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true); 
     rkApp.SetValue(name + ".exe", Application.ExecutablePath.ToString()); 
    } 
+0

谢谢。编写代码对我来说没有任何问题。我只是想知道在哪里写什么,并且需要管理员权限。 – Tracer

相关问题