并不是真正能修改硬件,只是一个数据,能骗过部分程序检测,如英雄联盟必须达到3.0的主频才能使用录像功能,通过修改可以达到要求。
下面是代码:
1 public enum RegValueKind 2 { 3 /// <summary> 4 /// 指示一个不受支持的注册表数据类型。例如,不支持 Microsoft Win32 API 注册表数据类型 REG_RESOURCE_LIST。使用此值指定 5 /// </summary> 6 Unknown = 0, 7 /// <summary> 8 /// 指定一个以 Null 结尾的字符串。此值与 Win32 API 注册表数据类型 REG_SZ 等效。 9 /// </summary> 10 String = 1, 11 /// <summary> 12 /// 指定一个以 NULL 结尾的字符串,该字符串中包含对环境变量(如 %PATH%,当值被检索时,就会展开)的未展开的引用。 13 /// 此值与 Win32 API注册表数据类型 REG_EXPAND_SZ 等效。 14 /// </summary> 15 ExpandString = 2, 16 /// <summary> 17 /// 指定任意格式的二进制数据。此值与 Win32 API 注册表数据类型 REG_BINARY 等效。 18 /// </summary> 19 Binary = 3, 20 /// <summary> 21 /// 指定一个 32 位二进制数。此值与 Win32 API 注册表数据类型 REG_DWORD 等效。 22 /// </summary> 23 DWord = 4, 24 /// <summary> 25 /// 指定一个以 NULL 结尾的字符串数组,以两个空字符结束。此值与 Win32 API 注册表数据类型 REG_MULTI_SZ 等效。 26 /// </summary> 27 MultiString = 5, 28 /// <summary> 29 /// 指定一个 64 位二进制数。此值与 Win32 API 注册表数据类型 REG_QWORD 等效。 30 /// </summary> 31 QWord = 6, 32 } 33 public RegistryValueKind GetRegValueKind(RegValueKind regValueKind) 34 { 35 RegistryValueKind regValueK; 36 #region 判断注册表数据类型 37 switch (regValueKind) 38 { 39 case RegValueKind.Unknown: 40 regValueK = RegistryValueKind.Unknown; break; 41 case RegValueKind.String: 42 regValueK = RegistryValueKind.String; break; 43 case RegValueKind.ExpandString: 44 regValueK = RegistryValueKind.ExpandString; break; 45 case RegValueKind.Binary: 46 regValueK = RegistryValueKind.Binary; break; 47 case RegValueKind.DWord: 48 regValueK = RegistryValueKind.DWord; break; 49 case RegValueKind.MultiString: 50 regValueK = RegistryValueKind.MultiString; break; 51 case RegValueKind.QWord: 52 regValueK = RegistryValueKind.QWord; break; 53 default: 54 regValueK = RegistryValueKind.String; break; 55 } 56 #endregion 57 return regValueK; 58 } 59 public void Modified() 60 { 61 try 62 { 63 RegistryKey rk = baseRegistryKey; 64 RegistryKey sk1 = rk.CreateSubKey(@"HARDWAREDESCRIPTIONSystemCentralProcessor "); 65 if (sk1 != null) 66 { 67 try 68 { 69 70 71 sk1.SetValue("~MHz", 0x000000c08, GetRegValueKind(RegValueKind.DWord)); 72 MessageBox.Show("ok"); 73 } 74 catch (Exception e) 75 { 76 MessageBox.Show("no"); 77 } 78 } 79 } 80 catch 81 { 82 MessageBox.Show("no,qingshishiguanliyuanquanxianyunxing"); 83 84 } 85 }