2010-08-30 100 views
4

如何配置C#程序在操作系统首次启动时运行?如何配置C#程序在首次启动操作系统时运行?

+2

什么是你想建立?在你连续询问的3个问题中: 1)如何在启动时运行 2)如何强制以管理员身份运行 3)如何从用户隐藏进程。 这种组合肯定会引起一些红旗。你试图解决什么商业案例? – cdkMoose 2010-08-30 17:31:25

回答

4

添加到注册表

private void AddToRegistry() 
     { 
      RegistryKey regKey = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run", true); 
      regKey.SetValue(Application.ProductName, Application.ExecutablePath); 
     } 
+1

每次执行此方法时都不会添加它吗?你不应该只想做一次吗? – 2010-08-30 12:11:04

+0

“每次执行此方法都不会添加它” - 否,每次执行时,regKey.SetValue都会覆盖该值。 – Joe 2010-08-30 12:51:21

+0

@George,是的,它在每次执行该方法时都将注册表项添加到注册表中,但如果您想确保用户不删除注册表项,则“可能”是“bydesign”。它不创建新密钥,只需更新密钥(如果存在),并在密钥不存在的情况下创建密钥。如果你只在程序启动时运行AddToRegistry,那么它没有问题。 (有些用户可能会对程序重新创建密钥感到愤怒,如果已经手动删除它的话) – Stefan 2010-08-30 12:53:28

8

只需将程序添加到启动文件夹中的开始菜单。

0

最简单的答案是将其添加到启动文件夹中的开始菜单。据我所知简单地把它放在那里应该有足够的(因为它只是一个小exe)。

13

如果您希望在用户登录到运行该程序,然后在“启动”文件夹或运行注册表键值的方法都工作。

如果您希望程序在打开计算机(即Windows启动)时运行,而无需等待用户登录,则需要将其安装为service,并将其配置为自动启动。

1

我相信你将不得不到这个C#应用程序转换为Windows服务和其启动类型设置为自动。这似乎是大多数人使用的方法。

0

对于一个简单的C#应用​​程序,把应用程序的.exe或它的快捷方式,在启动文件夹是最简单的方法。

要在一点点建立它更多,你可以把它添加到注册表,在“SOFTWARE \微软\的Windows \ CurrentVersion \”,那么您需要的子项。欲了解更多关于注册表方法的信息,请阅读 - http://support.microsoft.com/kb/179365

根据您的应用程序,可能/不可能需要更复杂的方法,您可以将其创建为服务,并将其设置为自动运行。对于一个简单的应用程序,这是不需要的,所以我不会在这一点上进一步扩展。

0

您可以将此程序作为Windows服务进行开发。然后,您可以将其配置为在发生故障或随后的故障后重新启动,从而提高鲁棒性。只是一个想法...

0

我使用Inno Setup的我的安装程序,并添加以下行会做到这一点:

Name: "{commonstartup}\YourFolder"; Filename: "{app}\YourApp.exe"; IconFilename: "{app}\YourApp.ico" 

也添加到您的[设置]部分

PrivilegesRequired=admin 

文档http://www.jrsoftware.org/iskb.php?startup

相关问题