IteratingRegistryKeys正如这里所建议的,我需要遍历条目HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionUninstall来找出我的应用程序的安装位置。我如何迭代才能找到给定DisplayName的InstallLocation值。如何在C#中高效地执行此操作。下面是实际目标的代码:foreach(varvinkey.GetSubKeyNames()){Console.WriteLine(v);RegistryKeyproductKey=key.OpenSubKey(v);if(productKey!=null){foreach(varvalueinproductKey.GetValueNames()){Console.WriteLine("tValue:"+value);//检查发布者以确保它是我们的产品字符串keyValue=Convert.ToString(productKey.GetValue("Publisher"));如果(!keyValue.Equals("MyPublisherCompanyName",StringComparison.OrdinalIgnoreCase))继续;字符串productName=Convert.ToString(productKey.GetValue("DisplayName"));如果(!productName.Equals("MyProductName",StringComparison.OrdinalIgnoreCase))返回;stringuninstallPath=Convert.ToString(productKey.GetValue("InstallSource"));//用这些有价值的信息做点什么}}}Console.ReadLine();}}编辑:有关查找应用程序安装路径的更全面方法,请参阅此方法,该方法演示了评论https://stackoverflow.com/a/26686738/495455中建议的使用处置using(RegistryKeykey=Registry.LocalMachine.OpenSubKey(@"WhaterTheKey")){if(key!=null){foreach(stringValueOfNameinkey.GetValueNames()){try{boolValue=bool.Parse((string)key.GetValue(ValueOfName));}catch(Exceptionex){}}}}使用bool强制转换:D-所以字符串应该是True或False。对于用户注册表配置单元,请使用Registry.CurrentUser而不是Registry.LocalMachine。以上就是C#学习教程:迭代注册表键值分享的全部内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
