2010-06-21 115 views

回答

5

这不支持ClickOnce(尽管我一直在问)。

我以前收集了以下代码,但我从来没有时间去尝试。如果它引起问题,我会在其周围放置try/catch。让我知道它是否有效。 ;-)

RegistryKey myUninstallKey = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Uninstall"); 
string[] mySubKeyNames = myUninstallKey.GetSubKeyNames(); 
for (int i = 0; i < mySubKeyNames.Length; i++) 
{ 
    RegistryKey myKey = myUninstallKey.OpenSubKey(mySubKeyNames , true); 
    object myValue = myKey.GetValue("DisplayName"); 
    if (myValue != null && (string)myValue == _ApplicationName) 
    { 
     myKey.SetValue("DisplayIcon", _ExecutablePath + @"\App.ico"); 
     break; 
    } 
} 
+1

这显然会要求您提供完全信任或注册表权限。这就是大多数人所做的(完全信任我的意思),但如果你确实关心在较低的信任度下运行,还是一个很好的记忆。 – 2010-06-22 13:59:04

+0

我认为它可能与部分信任一起工作,因为它正在编辑注册表的HKCU部分,而ClickOnce应用程序应该可以访问它。 – RobinDotNet 2010-06-22 17:19:17

+0

你会在哪里放这个代码 - 在应用程序启动代码或一些exe后安装(如何)? – Graeme 2010-06-23 14:25:39

相关问题