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

inkz8wg9  于 2023-01-14  发布在  Windows
关注(0)|答案(5)|浏览(201)
    • 我已经检查了一些其他示例。**

我正在开发一个WinForm.&现在我要创建它的安装程序。
我想在windows启动时启动软件&尝试使用以下代码。

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

但我很困惑,在哪里把这个代码。我不希望这个代码每次执行时,我的应用程序启动,因为它会执行一次,当软件安装。
如果regkey不存在,我应该检查form_Load()吗?如果是,则将该值添加到Run。
是正确的吗?我不想给用户一个选项&我想在启动时强制启动这个应用程序.
谢谢。

2ic8powd

2ic8powd1#

您可以为安装程序创建customAction类,如下所示:http://msdn.microsoft.com/en-us/library/d9k65z2d.aspx#Y0
一旦你有了这个类,把你的注册表代码放到提交部分。现在,无论你的应用程序何时被安装,你的应用程序都会被添加到注册表中,在启动时运行。

hts6caw3

hts6caw32#

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

    • 但是**

如果您不希望用户篡改启动文件夹,并且您绝对希望程序在Windows中自动启动,您可以按照您所说的那样做:每次程序启动时检查是否有适当的注册表项,如果没有就写它。2考虑到你的程序需要提升帐户权限。

    • 但是**

你绝对需要这个吗?你绝对肯定你不能提供它作为一个选项给最终用户吗?如果我是一个用户到您的程序,不想它在启动时,采取努力删除注册表项得到它出来,然后发现它再次在注册表中没有我的同意,我会很生气...

7gcisfzg

7gcisfzg3#

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

nxowjjhe

nxowjjhe4#

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

blpfk2vs

blpfk2vs5#

安装程序应创建注册表项。
另外,你的安装程序也会询问是为当前用户还是为所有用户安装。如果用户说everyone,那么密钥必须添加到HKEY_LOCAL_MACHINE而不是HKEY_CURRENT_USER,这需要管理员权限。安装程序通常有这个权限。

相关问题