【问题标题】:Start application at when windows Starts在 Windows 启动时启动应用程序
【发布时间】:2012-02-07 08:07:26
【问题描述】:

我检查了一些其他示例。

我正在开发一个 winfrom。 & 现在我要创建它的安装程序。

我想在 windows 启动时启动软件并尝试使用以下代码。

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

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

如果 regkey 不存在,我是否应该检查 form_Load(),如果不存在,则将此值添加到 Run。

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

谢谢。

【问题讨论】:

  • 您只需将 EXE 的快捷方式拖到“开始”->“所有程序”->“启动”中的“启动”部分如何?编辑:我的错,这不是正确的方法。您可以在安装时将 EXE 的快捷方式复制到启动文件夹。我想使用注册表是一种更好的方法。
  • 此代码属于您程序的安装程序。
  • i don't want to give an option to the user & i want to start this application at the startup compulsorily. 你可能有你的理由,但不给用户选项通常被认为是粗鲁的。
  • 别担心用户不会认为它粗鲁..

标签: c# winforms installation registry


【解决方案1】:

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

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

【讨论】:

  • 链接不再可用。
【解决方案2】:

正如其他用户评论的那样,这种事情应该在安装程序上进行。在您可以使用 Visual Studio 创建的安装项目中,您可以添加一个指向用户启动文件夹的链接,这应该可以解决问题。

但是

如果您不希望用户篡改启动文件夹并且您绝对希望程序在 Windows 中自动启动,您可以按照您所说的进行:每次程序启动时检查足够的注册表项,如果它不在那里写它。考虑到您的程序需要为此提升帐户权限。

但是

你绝对需要这个吗?您确定不能将其作为选项提供给最终用户吗?如果我是您的程序的用户,不想在启动时使用它,请努力删除注册表项以将其从那里取出,然后在未经我同意的情况下再次发现它在注册表中,我会很生气...

【讨论】:

  • 是的,我想强制软件在启动时运行...... :-) 如果你能提供任何 tuts 或示例,那就太好了......谢谢
【解决方案3】:

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

【讨论】:

    【解决方案4】:

    这取决于您使用的安装软件。如果你使用Visual Studio提供的设置项目模板,可以have the registry key created automatically

    【讨论】:

    • 我正在通过添加setup & deployment..来创建msi。你能推荐任何易于使用的软件吗?
    • @CodeHippo:是的,就是这样。在您的设置和部署项目中打开注册表编辑器(右键单击解决方案资源管理器中的设置项目,然后选择查看 -> 注册表)。在那里,您可以添加您的注册表项。
    • @Code Hippo:这是一个非常好的工具advancedinstaller.com 安装项目你可以购买或使用免费版
    【解决方案5】:

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

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

    【讨论】:

    • 我正在通过添加setup & deployment..创建msi。你能推荐任何易于使用的软件吗?
    • 我一直鄙视 Visual Studio 中包含的用于创建安装包的工具。以前我使用过 Inno Setup (jrsoftware.org/isinfo.php),它是免费的,非常易于使用且功能强大。
    • Google 的快速运行还显示了 NSIS (nsis.sourceforge.net/Main_Page) 和 WiX (wix.sourceforge.net),但我从未使用过其中任何一个,所以我无法对它们发表评论。不过,我知道 NSIS 的使用非常广泛。
    • 有很多与选择安装工具相关的问题。如this onethis one
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-23
    • 2016-08-12
    • 1970-01-01
    • 1970-01-01
    • 2012-03-18
    相关资源
    最近更新 更多