2012-02-07 426 views
0

我检查了一些其他示例。在Windows启动时启动应用程序启动

我正在研究winfrom。 &现在我要创建它的安装程序。

我想在Windows启动时启动软件&试图使用下面的代码。

RegistryKey rkApp = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true); 
rkApp.SetValue("MyApp", Application.ExecutablePath.ToString()); 

但我很困惑,在哪里把这段代码。 我不希望每当我的应用程序启动时执行此代码,因为它将在安装软件时执行一次。

我应该把form_Load()检查,如果regkey不存在,&如果是,那么将这个值添加到运行。

是正确的吗? 我不想给用户一个选项&我想在强制启动时启动此应用程序。

谢谢。

+1

那么您只需将EXE的快捷方式拖动到“开始” - >“所有程序” - >“启动”中的“启动”部分?编辑:我不好,那不是正确的方法。你*可以*在安装时将EXE的快捷方式复制到启动文件夹。我想使用注册表是一个更好的方法。 – Shai 2012-02-07 08:08:45

+1

此代码属于您程序的安装程序。 – 2012-02-07 08:09:30

+0

'我不想给用户一个选项,我想在强制启动时启动此应用程序。“您可能有自己的理由,但不会给用户选项通常被认为是粗鲁的。 – Heinzi 2012-02-07 08:25:55

回答

1

您可以创建customAction类的安装程序是这样的:http://msdn.microsoft.com/en-us/library/d9k65z2d.aspx#Y0

一旦你有了这个类,把你的注册表的代码在提交部分。现在,只要您的应用程序将被安装,您的应用程序将被添加到注册表以在启动时运行。

+0

链接不再可用。 – 2012-11-06 16:07:59

0

制作一个小型控制台应用程序,使用该行并在安装结束时运行该应用程序。

0

它取决于您使用的istaller软件。如果您使用由Visual Studio提供的安装项目模板,则可以使用have the registry key created automatically

+0

我通过添加'安装程序和部署'创建msi ..你可以建议任何易于使用的软件? – 2012-02-07 08:28:56

+0

@CodeHippo:是的,就是这样。在安装和部署项目中打开注册表编辑器(右键单击解决方案资源管理器中的安装项目,然后选择查看 - >注册表)。在那里,您可以添加您的注册表项。 – Heinzi 2012-02-07 08:51:48

+0

@Code Hippo:这是真正好的工具http://www.advancedinstaller.com/用于安装项目,您可以购买它或可以使用免费软件版本 – Smack 2012-02-07 09:38:17

1

随着其他用户的评论,这种事情应该在安装程序上。在可以使用Visual Studio创建的安装项目上,您可以添加一个指向用户的启动文件夹的链接,该链接应该可以实现。

如果您不希望用户与启动文件夹篡改和你绝对希望程序随Windows自动地启动,如你所说,你可以做的更多信息:检查是否有足够的注册表每次程序启动时键,如果它不在那里写。考虑到您的计划需要为此提供更高的帐户权限。

你绝对需要这个?你确定你不能把它作为最终用户的选择吗?如果我是程序的用户,不想在启动时使用它,请尽力删除注册表项,将其从注册表中移出,然后在未经我的同意的情况下再次在注册表中找到它,我会很生气...

+0

是的,我想强制软件在启动时运行。 .. :-)会很好,如果你可以提供任何内容或示例..谢谢 – 2012-02-07 08:31:16

0

您的安装程序应该创建注册表项。

此外,您的安装程序也可能会询问是为当前用户安装还是为所有用户安装。如果用户说每个人,那么密钥必须添加在HKEY_LOCAL_MACHINE而不是HKEY_CURRENT_USER,这需要管理员权限。安装人员通常具有该特权。

+0

我正在通过添加'安装程序和部署'创建微星..你可以建议任何易于使用的软件? – 2012-02-07 08:29:41

+0

我一直鄙视Visual Studio中包含的用于创建安装包的工具。早在我使用Inno Setup(http://www.jrsoftware.org/isinfo.php)时,它是免费的,非常容易使用且非常强大。 – CMPerez 2012-02-07 08:37:35

+0

一个快速谷歌运行也显示NSIS(http://nsis.sourceforge.net/Main_Page)和WiX(http://wix.sourceforge.net/),但我从来没有使用过任何这些,所以我可以对他们发表评论。不过,我知道NSIS的使用非常广泛。 – CMPerez 2012-02-07 08:40:11

相关问题