自动化测试 (五) 读写64位操作系统的注册表

自动化测试经常需要修改注册表

很多系统的设置(比如:IE的设置)都是存在注册表中。 桌面应用程序的设置也是存在注册表中。 所以做自动化测试的时候,经常需要去修改注册表

Windows注册表简介

注册表编辑器在 C:\Windows\regedit.exe。   或者在运行中,运行"regedit". 就可以启动注册表编辑器。

注册表由主键,键,子键,值项构成。  如下图

主键中的:HKEY_CURRENT_USER和HKEY_LOCAL_MACHINE中的内容差不多,一个是当前用户的设置,一个是机器的设置。

如果你想学习自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386   

 【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibili【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1、接口自动化之为什么要做接口自动化、2、接口自动化之request全局观、3、接口自动化之接口实战等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=N7T8https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337.search-card.all.click

C#修改注册表

C#修改注册表实在是太简单了,先添加 using Microsoft.Win32; 几行代码就搞定了,  看下面的实例, 读,增,删,改,操作都有了。

        static void Main(string[] args){// 实例, 修改IE主页RegistryKey localMachine = Registry.CurrentUser;RegistryKey sougou = localMachine.OpenSubKey(@"SOFTWARE\Microsoft\Internet Explorer\MAIN", true);// 获取IE 的主页string version = sougou.GetValue("Start Page").ToString();//  修改IE的主页 sougou.SetValue("Start Page", "http://www.cnblogs.com/", RegistryValueKind.String);// 修改Tanktest这个值项, 如不存在,则新建TankTest值项。sougou.SetValue("TankTest2", "1", RegistryValueKind.DWord);// 删除值项sougou.DeleteValue("TankTest2");// 新建子键sougou.CreateSubKey("This is subkey1");sougou.CreateSubKey("This is subkey2");// 删除子键sougou.DeleteSubKey("This is subkey1");}

32位操作系统和64位操作系统注册表的区别

上面的代码在32位的操作系统上运行没问题, 但是在64位操作系统中就不行了。

应用软件也有32位和64位之分。  在64位的操作系统中, 可以运行32位的应用程序和64位的应用程序。

如果在64位操作系统中安装32位的应用程序, 会安装到C:\Program Files(x86)\下。 启动任务管理器,你会看到32位的程序的进程名字后会带一个 ”*32“, 如下图:

注意: 64位操作系统中:  

64位的程序的注册表还在: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer

32位的程序的注册表而是在: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer

C#程序访问64位操作系统的注册表

 C#的程序都是32位的,访问注册表的时候,会访问HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\, 而访问不到HKEY_LOCAL_MACHINE\SOFTWARE\

.NET 3.5以前 C#程序需要通过Win32API函数(要写几百行代码)才能访问64位操作系统的注册表。

.NET 4.0 后访问64位操作系统的注册表很简单了。

        static void Main(string[] args){// 修改64位操作系统的注册表// 修改IE的首页// 通过RegistryView 来指定是64位操作系统还是32位RegistryKey localKey = RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.CurrentUser, RegistryView.Registry64);localKey = localKey.OpenSubKey(@"SOFTWARE\Microsoft\Internet Explorer\Main", true);if (localKey != null){localKey.SetValue("Start Page", "http://www.cnblogs.com");}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/286902.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在 WinForms DataGridView 中居中绘制图片的全面指南

在 WinForms DataGridView 中居中绘制图片的全面指南 引言 在现代的桌面应用程序中,用户界面的直观性和吸引力是至关重要的。Windows Forms (WinForms) 提供了丰富的控件来构建这样的界面,其中 DataGridView 是展示和操作数据的核心控件之一。本文将详细介绍如何在 WinForms…

uniapp-打包安卓APP流程

打包前所需要的配置 1. 图标配置 准备好对应的图标 在第一步选择该图标 然后点击自动生成所有图标 就会生成下面所有尺寸的图标 会自动存放至unpackage文件中 2. 启动页面配置 通用界面就是最基本的一个小图标加一个名称 自定义则是自己手动添加对应的启动图片 这里的图…

2023-南京荣耀Honor最新探访-OPEN DAY,实况记录!

前言 金九银十的秋招季缓缓落幕! 接完offer,博主也回归啦!有幸带着公开公平的心态,给大家分享一波南京荣耀总部的实况解密! 最基础的环境状况,有图有真相!~上图~ 民以食为天-南京荣耀食堂&…

C#中的协变和逆变

这两个都是只能使用在接口和委托上 个人理解: 协变:出参,让基类使用范围变大,将父类/基类当作子类一样使用 --为什么这样规定呢? 我的理解:真正实现的是子类,子类拥有所有的方法,却…

麒麟系统SP2 与昇腾300I芯片测试qwen7B模型记录

1. 查看系统版本 uname -a Linux localhost.localdomain 4.19.90-24.4.v2101.ky10.aarch64 #1 SMP Mon May 24 14:45:37 CST 2021 aarch64 aarch64 aarch64 GNU/Linux 2. 查看显卡 npu-smi info 前情提要: 官网给出支持昇腾910架构,刚好有300I资源…

java线程池执行任务时异常被吃掉

问题 今天在测试环境通过线程池执行任务时突然被中断,跟踪日志发现代码跑到一半后面的日志就不再打印,而且也没有任何异常堆栈信息,也就是说程序执行被中断了,后面反复尝试经排查发现是线程池使用不当导致。 测试验证 我们用线程…

〖Python网络爬虫实战㊸〗- 极验滑块介绍(五)

订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000 python项目实战 Python编程基础教程系列(零基础小白搬砖逆袭) 说明:本专栏持续更新中,订阅本专栏前必读关于专栏〖Python网络爬虫实战〗转为付费专栏的订阅说明作者&#xff1…

光伏收益计算工具:助力可再生能源发展的关键

随着全球对可再生能源需求的不断增加,光伏发电作为清洁、可再生的能源形式,越来越受到人们的关注。然而,要评估光伏系统的经济效益和投资回报,需要一个准确的光伏收益计算工具。 光伏收益计算工具是一种专门用于计算光伏系统发电量…

vue el-date-picker中datetime类型对今天之后的日期包含时分禁用

vue el-date-picker中datetime类型对今天之后的日期包含时分禁用 目前对选择秒那一列未禁用 <template><div><el-date-pickerv-model"deactivateTime"type"datetime"format"yyyy-MM-dd HH:mm:ss"value-format"yyyy-MM-dd HH…

MATLAB 点云中心化 (40)

MATLAB 点云中心化 一、算法介绍二、算法实现一、算法介绍 使用点云集合中的坐标计算质心,这里将其作为中心,将每个点坐标减去该中心坐标,即可得到中心化的点云,这在很多处理中是必须进行的一个步骤:相当于点云移动到以质心为原点的坐标系 (主要是计算质心和点云偏移两个…

带你学C语言~指针(2)

目录 &#x1f3c9;前言 &#x1f680; 数组名的理解 &#x1f680;使用指针访问数组 ✈一维数组传参的本质 ✈冒泡排序 &#x1f3c6;二级指针 &#x1f3c6;指针数组 &#x1f3c6;指针数组模拟二维数组 &#x1f389;结束语 &#x1f3c9;前言 上一章&#xff0c;小…

Java基础回顾——异常处理

文章目录 介绍语法抛出异常方法定义使用throws多catchfinally 自定义异常断言logging其他日志库commons loggingLog4j 介绍 一些错误是用户造成的&#xff08;类型输入错误&#xff09;&#xff0c;一些错误的随机出现&#xff08;网络终端、内存耗尽。。。&#xff09;&#…