提供網(wǎng)站制作百度風(fēng)云排行榜官網(wǎng)
自動(dòng)化測試經(jīng)常需要修改注冊表
很多系統(tǒng)的設(shè)置(比如:IE的設(shè)置)都是存在注冊表中。 桌面應(yīng)用程序的設(shè)置也是存在注冊表中。 所以做自動(dòng)化測試的時(shí)候,經(jīng)常需要去修改注冊表
Windows注冊表簡介
注冊表編輯器在 C:\Windows\regedit.exe。?? 或者在運(yùn)行中,運(yùn)行"regedit". 就可以啟動(dòng)注冊表編輯器。
注冊表由主鍵,鍵,子鍵,值項(xiàng)構(gòu)成。? 如下圖
主鍵中的:HKEY_CURRENT_USER和HKEY_LOCAL_MACHINE中的內(nèi)容差不多,一個(gè)是當(dāng)前用戶的設(shè)置,一個(gè)是機(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這個(gè)值項(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)用程序, 會(huì)安裝到C:\Program Files(x86)\下。 啟動(dòng)任務(wù)管理器,你會(huì)看到32位的程序的進(jìn)程名字后會(huì)帶一個(gè) ”*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í)候,會(huì)訪問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");
-
}
-
}
總結(jié):
感謝每一個(gè)認(rèn)真閱讀我文章的人!!!
作為一位過來人也是希望大家少走一些彎路,如果你不想再體驗(yàn)一次學(xué)習(xí)時(shí)找不到資料,沒人解答問題,堅(jiān)持幾天便放棄的感受的話,在這里我給大家分享一些自動(dòng)化測試的學(xué)習(xí)資源,希望能給你前進(jìn)的路上帶來幫助
軟件測試面試文檔
我們學(xué)習(xí)必然是為了找到高薪的工作,下面這些面試題是來自阿里、騰訊、字節(jié)等一線互聯(lián)網(wǎng)大廠最新的面試資料,并且有字節(jié)大佬給出了權(quán)威的解答,刷完這一套面試資料相信大家都能找到滿意的工作