我正在使用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) –