【问题标题】:Run elevated application at startup in win 7在win 7中启动时运行提升的应用程序
【发布时间】:2012-01-19 14:09:22
【问题描述】:

我正在开发一个 vb.net windows 32 位应用程序。应用程序需要启动。所以我在 Windows 启动时添加了注册表项。它也被设置为以管理员身份运行。

应用程序在除 Win7 32 位之外的所有操作系统上都能正常启动。它适用于 win 7- 64 位。

在 Win 7 32 位上: 如果我直接执行应用程序,它运行良好。但它不会在 windows 启动时启动。

如何将应用程序编程为在 win 7 32 位启动时运行?

【问题讨论】:

标签: vb.net windows-7 x86


【解决方案1】:

尝试这样做

string regPath = @"Software\Microsoft\Windows\CurrentVersion\Run";
RegistryKey key = Registry.CurrentUser.CreateSubKey(regPath);
key.SetValue("YOUR KEY", Assembly.GetExecutingAssembly().Location); //Or your exe path

希望这对你有用。

【讨论】:

  • 逻辑或解决方案很重要,Dexter ;) 可以轻松地将这些 C# 行转换为 VB.Net
  • 感谢您的回答,但我的注册表项也很好。问题是由于 Win 7 和 win vista 操作系统造成的。我正在回答这个问题。
【解决方案2】:

这里的问题是 Win Vista 和 win 7 32 位。在这些版本中发生的情况是操作系统不允许任何具有管理员权限的应用程序在启动时运行。

这是UAC项目经理http://blogs.msdn.com/b/uac/archive/2006/08/23/715265.aspx的一篇博文。

好在win 7 64位等操作系统不存在这个问题。这是我们开发人员面临的问题。

希望这对您有所帮助。

【讨论】:

    【解决方案3】:

    不是操作系统的问题,要么是您的注册表项未正确读取或尚未设置。

    可能是您的用户在 Win 7 32 用户中没有权限

    【讨论】:

    【解决方案4】:

    经过测试可以正常工作:

    If True Then
        My.Computer.Registry.SetValue("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run", "YOUR_APP_NAME", Environment.GetCommandLineArgs(0))
    Else
        My.Computer.Registry.LocalMachine.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run", True).DeleteValue("YOUR_APP_NAME")
    End If
    

    【讨论】:

    • 感谢您的帮助,但问题不在于此处的注册表项。我解决了这个问题。我正在为此发布答案。
    猜你喜欢
    • 1970-01-01
    • 2015-07-16
    • 1970-01-01
    • 2011-09-11
    • 2013-09-09
    • 2014-05-24
    • 1970-01-01
    相关资源
    最近更新 更多