在Windows启动时启动wpf应用程序

时间:2014-01-25 08:15:17

标签: c# .net wpf windows

我开发了一个WPF应用程序,现在我必须在Windows启动时启动该应用程序。
为此,我写了下面的代码。我从this answer得到了解决方案。
它在注册表中添加密钥但不启动应用程序。

Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
string str = Assembly.GetExecutingAssembly().Location;
key.SetValue("Camaleone", str);

2 个答案:

答案 0 :(得分:4)

通过双击正常启动应用程序时,工作目录通常是exe文件的路径。 这意味着如果您引用代码中的任何设置文件,它就可以找到它们。

但是,当您将其添加到注册表以在启动时运行时,工作目录为c:\windows\system32,因为它是由Windows本身启动的。

我通常使用它:

public static string BaseDir = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);

这意味着BaseDir现在是exe的路径。

每当我引用任何文件时,例如我将使用的设置文件:

string mySettingsFile = Path.Combine(BaseDir, "MySettingsFile.xml");

答案 1 :(得分:0)

请查看此处了解详情。因为您可以在注册表项中为所有用户或当前用户添加条目。

go to this