自動化測試讀寫64位操作系統(tǒng)的注冊表
非Web程序(桌面程序)的設(shè)置一般都存在注冊表中。 給這些程序做自動化測試時(shí), 需要經(jīng)常要跟注冊表打交道。 通過修改注冊表來修改程序的設(shè)置。
本章介紹如何利用C#程序如何操作注冊表, 特別是如何操作64位操作系統(tǒng)的注冊表。
閱讀目錄
- 自動化測試經(jīng)常需要修改注冊表
- Windows注冊表簡介
- C#修改注冊表
- 32位機(jī)器和64位機(jī)器注冊表的區(qū)別
- C#程序訪問64位操作系統(tǒng)的注冊表
自動化測試經(jīng)常需要修改注冊表
很多系統(tǒng)的設(shè)置(比如:IE的設(shè)置)都是存在注冊表中。 桌面應(yīng)用程序的設(shè)置也是存在注冊表中。 所以做自動化測試的時(shí)候,經(jīng)常需要去修改注冊表
Windows注冊表簡介
注冊表編輯器在 C:\Windows\regedit.exe。 或者在運(yùn)行中,運(yùn)行"regedit". 就可以啟動注冊表編輯器。
注冊表由主鍵,鍵,子鍵,值項(xiàng)構(gòu)成。 如下圖
主鍵中的:HKEY_CURRENT_USER和HKEY_LOCAL_MACHINE中的內(nèi)容差不多,一個是當(dāng)前用戶的設(shè)置,一個是機(jī)器的設(shè)置。
C#修改注冊表
C#修改注冊表實(shí)在是太簡單了,先添加 using Microsoft.Win32; 幾行代碼就搞定了, 看下面的實(shí)例, 讀,增,刪,改,操作都有了。
static void Main(string[] args) { // 實(shí)例, 修改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這個值項(xiàng), 如不存在,則新建TankTest值項(xiàng)。 sougou.SetValue("TankTest2", "1", RegistryValueKind.DWord); // 刪除值項(xiàng) sougou.DeleteValue("TankTest2"); // 新建子鍵 sougou.CreateSubKey("This is subkey1"); sougou.CreateSubKey("This is subkey2"); // 刪除子鍵 sougou.DeleteSubKey("This is subkey1"); }
32位操作系統(tǒng)和64位操作系統(tǒng)注冊表的區(qū)別
上面的代碼在32位的操作系統(tǒng)上運(yùn)行沒問題, 但是在64位操作系統(tǒng)中就不行了。
應(yīng)用軟件也有32位和64位之分。 在64位的操作系統(tǒng)中, 可以運(yùn)行32位的應(yīng)用程序和64位的應(yīng)用程序。
如果在64位操作系統(tǒng)中安裝32位的應(yīng)用程序, 會安裝到C:\Program Files(x86)\下。 啟動任務(wù)管理器,你會看到32位的程序的進(jìn)程名字后會帶一個 ”*32“, 如下圖:
注意: 64位操作系統(tǒng)中:
64位的程序的注冊表還在: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer
32位的程序的注冊表而是在: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer
C#程序訪問64位操作系統(tǒng)的注冊表
C#的程序都是32位的,訪問注冊表的時(shí)候,會訪問HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\, 而訪問不到HKEY_LOCAL_MACHINE\SOFTWARE\
.NET 3.5以前 C#程序需要通過Win32API函數(shù)(要寫幾百行代碼)才能訪問64位操作系統(tǒng)的注冊表。
.NET 4.0 后訪問64位操作系統(tǒng)的注冊表很簡單了。
static void Main(string[] args) { // 修改64位操作系統(tǒng)的注冊表 // 修改IE的首頁 // 通過RegistryView 來指定是64位操作系統(tǒng)還是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"); } }
以上就是自動化測試讀寫64位操作系統(tǒng)的注冊表的資料,后續(xù)繼續(xù)整理相關(guān)資料,謝謝大家對本站的支持!
- java selenium處理Iframe中的元素示例
- java selenium智能等待頁面加載完成示例代碼
- java selenium 操作彈出窗口示例代碼
- java selenium操作彈出對話框示例講解
- java selenium 操作瀏覽器實(shí)例
- java selenium Selenium IDE介紹及用法
- java selenium XPath 定位實(shí)現(xiàn)方法
- java selenium元素定位大全
- 解決cannot be cast to javax.servlet.Filter 報(bào)錯的問題
- 一段代碼搞懂關(guān)于Java中List、Set集合及Map的使用
相關(guān)文章
jQuery中文入門指南,翻譯加實(shí)例,jQuery的起點(diǎn)教程
jQuery中文入門指南,翻譯加實(shí)例,jQuery的起點(diǎn)教程...2007-02-02javascript日期處理函數(shù),性能優(yōu)化批處理
這篇文章主要介紹了javascript日期處置函數(shù),對批處理做了性能優(yōu)化,需要的朋友可以參考下2015-09-09JavaScript基礎(chǔ)語法與數(shù)據(jù)類型介紹
這篇文章介紹了JavaScript基礎(chǔ)語法與數(shù)據(jù)類型,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-02-02js修改地址欄URL參數(shù)解決url參數(shù)問題
現(xiàn)在做網(wǎng)頁,經(jīng)常會碰到處理地址欄參數(shù)的問題,因此,就專門做了一個修改地址欄參數(shù)的方法,需要了解的朋友可以參考下2012-12-12深入理解JavaScript系列(49):Function模式(上篇)
這篇文章主要介紹了深入理解JavaScript系列(49):Function模式(上篇),本文講解了回調(diào)函數(shù)、配置對象、返回函數(shù)、偏應(yīng)用、Currying等內(nèi)容,需要的朋友可以參考下2015-03-03javascript學(xué)習(xí)筆記(七) js函數(shù)介紹
javascript學(xué)習(xí)筆記之js函數(shù)介紹,需要的朋友可以參考下2012-06-06結(jié)合代碼圖文講解JavaScript中的作用域與作用域鏈
JavaScript雖然沒有類,但變量和一些函數(shù)卻同樣擁有局部作用域的制約,下面結(jié)合代碼圖文講解JavaScript中的作用域與作用域鏈:2016-07-07