私はC#にかなり慣れていません。複数のレジストリエントリを次々に削除したいのですが、最初のキーで例外が発生し、その後、コードは他のキーの削除を停止します.ifブロックの単一のキーで機能する以下のコードを試しました
string[] keyArray = { @"Wow6432Node\CLSID",
@"Software\Microsoft\Windows\CurrentVersion\Ext\Settings",
@"Software\Microsoft\Windows\CurrentVersion\Ext\Stats",
@"SOFTWARE\Classes\Wow6432Node\CLSID",
@"SOFTWARE\Wow6432Node\Classes\CLSID",
@"Wow6432Node\Microsoft\Code Store Database\Distribution Units",
@"Wow6432Node\Microsoft\Internet Explorer\ActiveX Compatibility",
@"SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\ModuleUsage"
};
foreach (var key in keyArray)
{
try
{
RegistryKey myKey = Registry.ClassesRoot.OpenSubKey(key, true);
if (myKey != null)
{
/*Cisco Secure Desktop*/
myKey.DeleteSubKeyTree("{705EC6D4-B138-4079-A307-EF13E4889A82}");
myKey.DeleteSubKeyTree("{F8FC1530-0608-11DF-2008-0800200C9A66}");
myKey.DeleteSubKeyTree("{E34F52FE-7769-46CE-8F8B-5E8ABAD2E9FC}");
/*Cisco Hostscan*/
myKey.DeleteSubKeyTree("{F8FC1530-0608-11DF-2008-0800200C9A66}");
myKey.DeleteSubKeyTree("{E34F52FE-7769-46CE-8F8B-5E8ABAD2E9FC}");
/*Cisco AnyConnect Secure Mobility Client*/
myKey.DeleteSubKeyTree("{55963676-2F5E-4BAF-AC28-CF26AA587566}");
myKey.DeleteSubKeyTree("{CC679CB8-DC4B-458B-B817-D447B3B6AC31}");
}
else
Console.WriteLine(string.Format("could not open key: {0}", key));
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(
string.Format("action {0} failed with\n{1}", key, ex.Message));
}
}