我正在使用vb.net windows 32位应用程序。应用程序需要启动。所以我添加注册表项,以在Windows启动时发现它。它也被设置为以管理员身份运行。在win 7启动时运行提升的应用程序
该应用程序可以在除Win7 32位以外的所有操作系统上正常启动。它适用于赢取7-64位。
On Win 7 32 bit: 如果我直接执行应用程序,它运行良好。但它不会在Windows启动时启动。
如何将应用程序编程为在win 7 32位启动时运行?
我正在使用vb.net windows 32位应用程序。应用程序需要启动。所以我添加注册表项,以在Windows启动时发现它。它也被设置为以管理员身份运行。在win 7启动时运行提升的应用程序
该应用程序可以在除Win7 32位以外的所有操作系统上正常启动。它适用于赢取7-64位。
On Win 7 32 bit: 如果我直接执行应用程序,它运行良好。但它不会在Windows启动时启动。
如何将应用程序编程为在win 7 32位启动时运行?
这里的问题是与Win Vista和7赢得32位。在这些版本中会发生什么是操作系统不允许任何具有管理权限的应用程序在启动时运行。
这是UAC http://blogs.msdn.com/b/uac/archive/2006/08/23/715265.aspx的项目经理的博客条目。
好事是这个问题在win 7 64位和其他操作系统中不存在。这是我们开发人员面临问题的视景问题。
希望这可以帮助你。
尝试这样做
string regPath = @"Software\Microsoft\Windows\CurrentVersion\Run";
RegistryKey key = Registry.CurrentUser.CreateSubKey(regPath);
key.SetValue("YOUR KEY", Assembly.GetExecutingAssembly().Location); //Or your exe path
希望这对你的作品。
这不是操作系统的问题,您的注册表项没有正确读取或者尚未设置。
可能是你的用户没有权在Win 7 32用户
即使我这么认为。但后来我试了两个不同的win7 32位盒子,结果是一样的。应用程序未运行。 – Harsh
这可能会为您的问题提供解决方案。表决或接受,如果它工作http://social.msdn.microsoft.com/Forums/en-US/windowscompatibility/thread/073349b1-0f29-41ef-aaab-dbb262d52457/ –
这是测试的:
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
感谢您的帮助,但问题不是注册表进入这里。我修正了这个问题。我为此发布了一个答案。 – Harsh
[需要在启动注册表项(Windows 7)中需要提升的程序]的可能的重复](http://stackoverflow.com/questions/2293609/program-needing-elevation-in-startup-registry-key-windows-7) –