提問(wèn)者: ycend 2016-08-16 00:00
非Web程序(桌面程序)的設(shè)置一般都存在注冊(cè)表中。 給這些程序做自動(dòng)化測(cè)試時(shí), 需要經(jīng)常要跟注冊(cè)表打交道。 通過(guò)修改注冊(cè)表來(lái)修改程序的設(shè)置。 本章介紹如何利用C#程序如何操作注冊(cè)表, 特別是如何操作64位操作系統(tǒng)的注冊(cè)表。 閱讀目錄 自動(dòng)化測(cè)試經(jīng)常需要修改注冊(cè)表 Windows注冊(cè)表簡(jiǎn)介 C#修改注冊(cè)表 32位機(jī)器和64位機(jī)器注冊(cè)表的區(qū)別 C#程序訪問(wèn)64位操作系統(tǒng)的注冊(cè)表自動(dòng)化測(cè)試經(jīng)常需要修改注冊(cè)表 很多系統(tǒng)的設(shè)置(比如:IE的設(shè)置)都是存在注冊(cè)表中。 桌面應(yīng)用程序的設(shè)置也是存在注冊(cè)表中。 所以做自動(dòng)化測(cè)試的時(shí)候,經(jīng)常需要去修改注冊(cè)表 Windows注冊(cè)表簡(jiǎn)介 注冊(cè)表編輯器在 C:\Windows\regedit.exe。 或者在運(yùn)行中,運(yùn)行"regedit". 就可以啟動(dòng)注冊(cè)表編輯器。 注冊(cè)表由主鍵,鍵,子鍵,值項(xiàng)構(gòu)成。 如下圖 主鍵中的:HKEY_CURRENT_USER和HKEY_LOCAL_MACHINE中的內(nèi)容差不多,一個(gè)是當(dāng)前用戶的設(shè)置,一個(gè)是機(jī)器的設(shè)置。 C#修改注冊(cè)表 C#修改注冊(cè)表實(shí)在是太簡(jiǎn)單了,先添加 using Microsoft.Win32; 幾行代碼就搞定了, 看下面的實(shí)例, 讀,增,刪,改,操作都有了。 static void Main(string[] args) { // 實(shí)例, 修改IE主頁(yè) RegistryKey localMachine = Registry.CurrentUser; RegistryKey sougou = localMachine.OpenSubKey(@"SOFTWARE\Microsoft\Internet Explorer\MAIN", true); // 獲取IE 的主頁(yè) string version = sougou.GetValue("Start Page").ToString(); // 修改IE的主頁(yè) 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)注冊(cè)表的區(qū)別 上面的代碼在32位的操作系統(tǒng)上運(yùn)行沒(méi)問(wè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位的程序的注冊(cè)表還在: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer 32位的程序的注冊(cè)表而是在: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer C#程序訪問(wèn)64位操作系統(tǒng)的注冊(cè)表 C#的程序都是32位的,訪問(wèn)注冊(cè)表的時(shí)候,會(huì)訪問(wèn)HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\, 而訪問(wèn)不到HKEY_LOCAL_MACHINE\SOFTWARE\ .NET 3.5以前 C#程序需要通過(guò)Win32API函數(shù)(要寫(xiě)幾百行代碼)才能訪問(wèn)64位操作系統(tǒng)的注冊(cè)表。 .NET 4.0 后訪問(wèn)64位操作系統(tǒng)的注冊(cè)表很簡(jiǎn)單了。 static void Main(string[] args) { // 修改64位操作系統(tǒng)的注冊(cè)表 // 修改IE的首頁(yè) // 通過(guò)RegistryView 來(lái)指定是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"); } } 以上就是自動(dòng)化測(cè)試讀寫(xiě)64位操作系統(tǒng)的注冊(cè)表的資料,后續(xù)繼續(xù)整理相關(guān)資料,謝謝大家對(duì)本站的支持!
回答者:baby10152016-08-18 00:00
X-CODE自帶的工具可以進(jìn)行需求測(cè)試 目前沒(méi)有自動(dòng)化的
提問(wèn)者: jdklur 2014-01-06
同學(xué),我是詹老師。請(qǐng)獨(dú)立完成題目。
提問(wèn)者: kyfra 2013-08-29
很多都是自己開(kāi)發(fā)的apk吧。主要是測(cè)試壓力。 像:相機(jī)、短信、電話、SD卡讀寫(xiě)、通訊錄充滿、開(kāi)關(guān)機(jī)、通話記錄、郵件、情景模式切換、撥號(hào)上網(wǎng)、待機(jī)喚醒、鬧鐘、隨即點(diǎn)屏等
提問(wèn)者: w2513061 2013-10-09
如果是新車 說(shuō)明沒(méi)有問(wèn)題 只不過(guò)OBD系統(tǒng)某些監(jiān)測(cè)項(xiàng)目沒(méi)有完成 比如行駛周期未達(dá)到等
提問(wèn)者: 張小江_mini 2013-10-12
電源線ACC和和B+12V接直流電源+12V,地線接負(fù)極,這樣能保證基本的開(kāi)機(jī)關(guān)機(jī)。每種樣機(jī)電源線都不一樣,還有燈線,手剎等。具體的參考說(shuō)明書(shū)。
提問(wèn)者:kasgags322013-08-15
深圳市卓能達(dá)自動(dòng)化測(cè)試
提問(wèn)者: SYX86262 2014-10-15