我正在开发一个vb.net windows 32位应用程序。应用程序需要启动。所以我在Windows启动时添加了注册表项。它也设置为以管理员身份运行。
除Win7 32位外,应用程序在所有操作系统上都可以正常启动。它适用于赢7-64位。
在Win 7 32位上: 如果我直接执行应用程序,它运行正常。但它并不是从Windows启动时开始的。
如何将应用程序编程为在win 7 32位启动时运行?
答案 0 :(得分: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
希望这适合你。
答案 1 :(得分:1)
这里的问题是Win Vista并赢得7位32位。这些版本中发生的情况是操作系统不允许任何具有管理员权限的应用程序在启动时运行。
以下是UAC http://blogs.msdn.com/b/uac/archive/2006/08/23/715265.aspx项目经理的博客文章。
好处是win 7 64位和其他操作系统中不存在此问题。这是一个远景问题,因为我们开发人员面临问题。
希望这会对你有所帮助。
答案 2 :(得分:0)
操作系统的问题不在于您的注册表项未正确读取或尚未设置。
您的用户可能无权使用Win 7 32用户
答案 3 :(得分: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