Adding sites to Trusted list in IE (all versions above 6)
程序崩溃于
var subdomain=新字典
Visual Studio所说的消息是"参数异常未处理"
我不知道该怎么修复它或者它意味着什么?任何帮助都将不胜感激。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Win32; namespace LotusTrustedSites { class ReportDownloader { [STAThread] static void Main(string[] args) { const string domainsKeyLocation = @"Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains"; const string domain = @"newsite.com"; const int trustedSiteZone = 0x2; var subdomains = new Dictionary { {"www","https"}, {"www","http"}, {"blog","https"}, {"blog","http"} }; RegistryKey currentUserKey = Registry.CurrentUser; currentUserKey.GetOrCreateSubKey(domainsKeyLocation, domain, false); foreach (var subdomain in subdomains) { CreateSubdomainKeyAndValue(currentUserKey, domainsKeyLocation, domain, subdomain, trustedSiteZone); } //automation code } private static void CreateSubdomainKeyAndValue(RegistryKey currentUserKey, string domainsKeyLocation, string domain, KeyValuePair subdomain, int zone) { RegistryKey subdomainRegistryKey = currentUserKey.GetOrCreateSubKey(string.Format(@"{0}\{1}", domainsKeyLocation, domain), subdomain.Key, true); object objSubDomainValue = subdomainRegistryKey.GetValue(subdomain.Value); if (objSubDomainValue == null || Convert.ToInt32(objSubDomainValue) != zone) { subdomainRegistryKey.SetValue(subdomain.Value, zone, RegistryValueKind.DWord); } } } public static class RegistryKeyExtensionMethods { public static RegistryKey GetOrCreateSubKey(this RegistryKey registryKey, string parentKeyLocation, string key, bool writable) { string keyLocation = string.Format(@"{0}\{1}", parentKeyLocation, key); RegistryKey foundRegistryKey = registryKey.OpenSubKey(keyLocation, writable); return foundRegistryKey ?? registryKey.CreateSubKey(parentKeyLocation, key); } public static RegistryKey CreateSubKey(this RegistryKey registryKey, string parentKeyLocation, string key) { RegistryKey parentKey = registryKey.OpenSubKey(parentKeyLocation, true); //must be writable == true if (parentKey == null) { throw new NullReferenceException(string.Format("Missing parent key: {0}", parentKeyLocation)); } RegistryKey createdKey = parentKey.CreateSubKey(key); if (createdKey == null) { throw new Exception(string.Format("Key not created: {0}", key)); } return createdKey; } } } |
你有重复的钥匙。