2012-01-19 60 views
1

我正在使用vb.net windows 32位应用程序。应用程序需要启动。所以我添加注册表项,以在Windows启动时发现它。它也被设置为以管理员身份运行。在win 7启动时运行提升的应用程序

该应用程序可以在除Win7 32位以外的所有操作系统上正常启动。它适用于赢取7-64位。

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

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

+0

[需要在启动注册表项(Windows 7)中需要提升的程序]的可能的重复](http://stackoverflow.com/questions/2293609/program-needing-elevation-in-startup-registry-key-windows-7) –

回答

1

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

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

好事是这个问题在win 7 64位和其他操作系统中不存在。这是我们开发人员面临问题的视景问题。

希望这可以帮助你。

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 

希望这对你的作品。

+0

他想要VB.NET代码。 – Elmo

+1

逻辑或解决方案,德克斯特;)可以很容易地将这些C#行转换为VB.Net –

+0

感谢您的答案,但注册表项在我的最终也罚款。这个问题是由于Win 7和win vista操作系统。我正在回答这个问题。 – Harsh

0

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

可能是你的用户没有权在Win 7 32用户

+0

即使我这么认为。但后来我试了两个不同的win7 32位盒子,结果是一样的。应用程序未运行。 – Harsh

+0

这可能会为您的问题提供解决方案。表决或接受,如果它工作http://social.msdn.microsoft.com/Forums/en-US/windowscompatibility/thread/073349b1-0f29-41ef-aaab-dbb262d52457/ –

0

这是测试的:

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 
+0

感谢您的帮助,但问题不是注册表进入这里。我修正了这个问题。我为此发布了一个答案。 – Harsh

相关问题