2012-01-19 56 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

相關問題