2012-06-16 109 views
7

我希望我的应用程序(WPF Window)在Windows启动时启动。我尝试了不同的解决方案,但似乎没有人工作。我必须在我的代码中写入这些内容?Windows启动时启动窗口

+1

您尝试过哪些解决方案? – BoltClock

+0

我试着写一个关键的注册表:HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Run – Nick

+0

你有没有任何日志记录?无论如何,你在注册表项中存储什么?该解决方案应该可行。 –

回答

13

当你说你必须将注册表项添加到注册表中时,你是正确的。如果你想开始为当前用户应用

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 

添加一个关键。

或者:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 

如果要启动它为所有用户。

例如,从当前用户的应用程序:如果你想自动启动在Windows启动时所有的用户应用

var path = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; 
RegistryKey key = Registry.CurrentUser.OpenSubKey(path, true); 
key.SetValue("MyApplication", Application.ExecutablePath.ToString()); 

只需更换与

RegistryKey key = Registry.LocalMachine.OpenSubKey(path, true); 

行第二行。

如果您不想再自动启动应用程序,只需删除注册表值。

这样:

var path = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; 
RegistryKey key = Registry.CurrentUser.OpenSubKey(path, true); 
key.DeleteValue("MyApplication", false); 

此示例代码是为WinForms应用程序进行测试。如果您需要确定WPF应用程序的可执行文件的路径,请尝试以下操作。

string path = System.Reflection.Assembly.GetExecutingAssembly().Location; 

只是路径到您的可执行文件替换 “Application.ExecutablePath.ToString()”。

+0

[Application](http://msdn.microsoft.com/zh-cn/library/system.windows.application_members(v = vs.90))没有ExecutablePath。 – Nick

+0

此示例代码适用于Windows窗体应用程序。您需要以不同的方式为WPF应用程序获取可执行文件的路径。 –

+0

它的工作原理!如果我想删除此行为,我是否要删除密钥?你能告诉我如何? – Nick