在Windows启动时运行程序

时间:2011-09-20 00:46:59

标签: c# wcf startup registrykey

如果有人能向我解释如何让我的程序在启动时运行,我就会徘徊? 我的程序是一个C#WCF,它有一个小的WPF UI,必须在服务器上运行,我需要确保程序将在服务器重新启动时或其他任何原因启动。

我看了一下,似乎我必须使用注册表项,但我不熟悉如何使用注册表项,有人可以向我解释如何使用它。我正在使用VS2010创建安装程序,我想在安装时设置注册表项:)

P.S。我不希望该应用程序是Windows服务,我不能只将它放在用户的启动文件夹中(如果服务器重新启动并且没有人登录会导致什么?)

1 个答案:

答案 0 :(得分:5)

添加要运行的内容:

http://www.geekpedia.com/tutorial151_Run-the-application-at-Windows-startup.html

RegistryKey rkApp = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);

rkApp.SetValue("MyApp", Application.ExecutablePath.ToString());

更新:在考虑了这个之后,这可能无法帮助您,因为您的方法似乎存在根本缺陷。有人仍然需要登录才能运行UI。如何解决这个问题:

将服务推送回Windows服务(正如其他人所建议的那样)。对于WPF UI部分,将其与托管WCF服务的exe分离到其自己的项目中。只需公开UI可用于管理/监控服务的另一个服务端点合同。

这为能够从另一台机器监控服务器打开了大门。此外,您不必担心同时登录服务器的多个人(在许多环境中可能出现这种情况)并启动多个服务主机实例。