当前位置: 首页 > news >正文

山东卓商网站建设公司?a品定制网站开发

山东卓商网站建设公司,?a品定制网站开发,甘肃省建设信息平台,网站加产品分类原文:使用.netFx4.0提供的方法解决32位程序访问64位系统的64位注册表我们知道目标平台是32位的程序运行在64位的系统上#xff0c;去访问部分注册表的时候系统自动重定向到win32node节点对应的项去了。但是做过安装程序开发人员可能遇到过“需要去掉重定向”的问题#xff0c…原文:使用.netFx4.0提供的方法解决32位程序访问64位系统的64位注册表   我们知道目标平台是32位的程序运行在64位的系统上去访问部分注册表的时候系统自动重定向到win32node节点对应的项去了。但是做过安装程序开发人员可能遇到过“需要去掉重定向”的问题即直接访问64位程序的注册表。 网上有很多winAPI的方法关闭注册表的重定向稍微复杂。关闭文件系统的重定向稍微简单些搬过来就可以用关闭注册表的重定向我现在没看懂。 我这里提供的方法不需要关闭重定向也不需要用winAPI操作起来方便了许多。具体如下     第一个方法是获得根节点的句柄常数是固定的。   static IntPtr GetHiveHandle(RegistryHive hive){IntPtr preexistingHandle IntPtr.Zero;IntPtr HKEY_CLASSES_ROOT new IntPtr(-2147483648);IntPtr HKEY_CURRENT_USER new IntPtr(-2147483647);IntPtr HKEY_LOCAL_MACHINE new IntPtr(-2147483646);IntPtr HKEY_USERS new IntPtr(-2147483645);IntPtr HKEY_PERFORMANCE_DATA new IntPtr(-2147483644);IntPtr HKEY_CURRENT_CONFIG new IntPtr(-2147483643);IntPtr HKEY_DYN_DATA new IntPtr(-2147483642);switch (hive){case RegistryHive.ClassesRoot: preexistingHandle HKEY_CLASSES_ROOT; break;case RegistryHive.CurrentUser: preexistingHandle HKEY_CURRENT_USER; break;case RegistryHive.LocalMachine: preexistingHandle HKEY_LOCAL_MACHINE; break;case RegistryHive.Users: preexistingHandle HKEY_USERS; break;case RegistryHive.PerformanceData: preexistingHandle HKEY_PERFORMANCE_DATA; break;case RegistryHive.CurrentConfig: preexistingHandle HKEY_CURRENT_CONFIG; break;case RegistryHive.DynData: preexistingHandle HKEY_DYN_DATA; break;}return preexistingHandle;}/// summary/// 用于32位程序访问64位注册表/// /summary/// param namehive根级别的名称/param/// param namekeyName不包括根级别的名称/param/// param namevalueName项名称/param/// param nameview注册表视图/param/// returns值/returnsstatic object GetValueWithRegView(RegistryHive hive, string keyName, string valueName, RegistryView view){SafeRegistryHandle handle new SafeRegistryHandle(GetHiveHandle(hive), true);//获得根节点的安全句柄 RegistryKey subkey RegistryKey.FromHandle(handle, view).OpenSubKey(keyName);//获得要访问的键 RegistryKey key RegistryKey.FromHandle(subkey.Handle, view);//根据键的句柄和视图获得要访问的键return key.GetValue(valueName);//获得键下指定项的值}/// summary/// 用于32位的程序设置64位的注册表/// /summary/// param namehive根级别的名称/param/// param namekeyName不包括根级别的名称/param/// param namevalueName项名称/param/// param namevalue值/param/// param namekind值类型/param/// param nameview注册表视图/paramstatic void SetValueWithRegView(RegistryHive hive, string keyName, string valueName, object value, RegistryValueKind kind, RegistryView view){SafeRegistryHandle handle new SafeRegistryHandle(GetHiveHandle(hive), true);RegistryKey subkey RegistryKey.FromHandle(handle, view).OpenSubKey(keyName, true);//需要写的权限,这里的true是关键。0227更新 RegistryKey key RegistryKey.FromHandle(subkey.Handle, view);key.SetValue(valueName, value, kind);}        使用这些方法需要引入Microsoft.Win32.SafeHandles;Microsoft.Win32;system;这三个命名空间。方法只提供了主干没有异常处理。望大家及时交流实际使用情况不足之处请及时指出。 关于winAPI的方法可以访问http://home.cnblogs.com/u/xuguilin/相应的文章同时也感谢xuguilin对我的指导。据介绍dotNet框架可能需要4.0版本以上
http://www.yutouwan.com/news/425803/

相关文章:

  • 电子商务网站设计与建设小结刚上线的网站
  • 网站的备案all做网站网站盈利会怎么样
  • 网站实名认证需要什么资料做h5网站公司
  • wp网站模板安装南京做网站引流的公司
  • 常见网站攻击方式微网站是手机网站吗
  • 福田蒙派克10座黄牌报价关键词优化按天计费
  • 常州做网站那家快专业做网站建设
  • 怎样在网站上做免费的推广郑州网站推广策
  • 双城网站建设哪家好企业网站优化分为
  • 百达翡丽手表网站商城微网站建设多少钱
  • 广州 企业网站建设ui设计包括哪些场景
  • 梅花手表网站垄断了网站建设
  • 网站访问量的单位做网站包括哪些
  • 佛山网站建设公司3lue自创品牌策划方案范文
  • 添加网站绑定主机名代码做网站的软件
  • 网站建设在电子商务中的作用wordpress 推荐 主题
  • php 设置网站根目录生鲜网站建设规划书范文
  • 手机设计软件官方下载新乡网站seo
  • 曼网企业名录搜索软件襄樊seo快速排名
  • 南宁购物网站建设企业网站建设费用计入哪个科目
  • 广州建站方法动易网站 价格
  • 上海沙龙网站建设有没有网站免费的
  • 网站制作品牌有哪些什么是网络营销定价中除免费策略外
  • 孝感市建设局网站杭州建站平台
  • 电商网站主题针对人群不同 网站做细分
  • 苏州做网站公司有哪些cpa个人网站怎么做
  • 给自己家的公司做网站好做吗网页制作与设计教程
  • 网站制作价格怎么算服装设计图片
  • 网站制作公司浩森宇特网站建设的固定资产包括哪些
  • 网站后缀意思wordpress 调用文章分类