日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#_自动化测试 (四) 自动卸载软件

發(fā)布時(shí)間:2023/12/20 C# 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#_自动化测试 (四) 自动卸载软件 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在平常的測試工作中,經(jīng)常要安裝軟件,卸載軟件,? 即繁瑣又累。? 安裝和卸載完全可以做成自動(dòng)化。 安裝軟件我們可以通過自動(dòng)化框架,自動(dòng)點(diǎn)擊Next,來自動(dòng)安裝。? 卸載軟件我們可以通過msiexec命令行工具自動(dòng)化卸載軟件

?

閱讀目錄

  • 用msiexec 命令來卸載軟件
  • 注冊(cè)表中查找ProductCode
  • C#中自動(dòng)卸載軟件
  • C#查找注冊(cè)表中的ProductCode
  • 完整源代碼下載
  • ?

    用msiexec 命令來卸載軟件

    平常我們手動(dòng)卸載軟件都是到控制面板中的"添加/刪除"程序中去卸載軟件, 或者通過程序自帶的卸載軟件來卸載。

    我們可以通過 MsiExec.exe /X{ProductCode} 命令來卸載程序。

    關(guān)于MsiExec.exe 請(qǐng)看 http://technet.microsoft.com/zh-cn/library/cc759262%28v=WS.10%29.aspx

    ?

    注冊(cè)表中查找ProductCode

    ProductCode是Windows 安裝程序包的全局唯一標(biāo)識(shí)符 (GUID), 我們可以通過注冊(cè)表來獲取ProductCode

    ?

    實(shí)例:? 用MsiExec.exe 自動(dòng)卸載Xmarks.

    Xmarks 是一個(gè)用來同步收藏夾的工具, 我平常用來同步IE,firefox,chrome的收藏夾。

    先用注冊(cè)表打開如下位置,

    32位操作系統(tǒng): HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\

    注意: 如果是64位操作系統(tǒng):??

    64位的程序還在: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\

    32位的程序而是在: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\

    ?

    ?Uninstall下面的注冊(cè)表子鍵很多, 你需要耐心地一個(gè)一個(gè)去查找"DisplayName", 從而找到程序的ProductCode, 如下圖。

    從注冊(cè)表中我們找到UninstallString這個(gè)鍵值:? MsiExec.exe /X{C56BBAC8-0DD2-4CE4-86E0-F2BDEABDD0CF}, 那么ProductCode就是{C56BBAC8-0DD2-4CE4-86E0-F2BDEABDD0CF}

    我們可以通過 MsiExec.exe /X{ProductCode} 命令來卸載程序.?

    那么卸載的命令應(yīng)該為 MsiExec.exe /X{C56BBAC8-0DD2-4CE4-86E0-F2BDEABDD0CF}

    然后在CMD中直接調(diào)用這個(gè)命令, 會(huì)彈出一個(gè)對(duì)話框,點(diǎn)擊"是" 后, 軟件就能被卸載了。

    在自動(dòng)化測試中,我們不想彈出這個(gè)對(duì)話框,而是希望直接卸載。同時(shí)也不希望系統(tǒng)重啟 只要加個(gè)兩個(gè)參數(shù) /quiet /norestart 就可以了

    現(xiàn)在的卸載的命令是: MsiExec.exe /X{C56BBAC8-0DD2-4CE4-86E0-F2BDEABDD0CF} /quiet

    ?

    C#中卸載程序

    ?C#的卸載代碼比較簡單, 當(dāng)然你也可以用其他語言。

    Process p = new Process();p.StartInfo.FileName = "msiexec.exe"; p.StartInfo.Arguments = "/x {C56BBAC8-0DD2-4CE4-86E0-F2BDEABDD0CF} /quiet /norestart"; p.Start();

    ?

    C#查找注冊(cè)表中的ProductCode

    最麻煩的在于,如何到注冊(cè)表中獲取ProductCode。 如果做非Web程序的自動(dòng)化測試,經(jīng)常需要跟注冊(cè)表打交道。

    代碼為:

    public static string GetProductCode(string displayName){string productCode = string.Empty; // 如果是32位操作系統(tǒng),(或者系統(tǒng)是64位,程序也是64位) string bit32 = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"; // 如果操作系統(tǒng)是64位并且程序是32位的 string bit64 = @"SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall"; RegistryKey localMachine = Registry.LocalMachine; RegistryKey Uninstall = localMachine.OpenSubKey(bit32, true); foreach (string subkey in Uninstall.GetSubKeyNames()) { RegistryKey productcode = Uninstall.OpenSubKey(subkey); try { string displayname = productcode.GetValue("DisplayName").ToString(); if (displayname == displayName) { string uninstallString = productcode.GetValue("UninstallString").ToString(); string[] strs = uninstallString.Split(new char[2] { '{', '}' }); productCode = strs[1]; return productCode; } } catch { } } return productCode; }

    ?

    完整的源代碼下載

    ?點(diǎn)擊此處下載完整源代碼, 請(qǐng)用vs2010以上打開

    附: 自動(dòng)化測試 系列教程, (連載中, 敬請(qǐng)期待)

    自動(dòng)化測試 (一) 12306火車票網(wǎng)站自動(dòng)登錄工具

    自動(dòng)化測試 (二) 連連看外掛

    自動(dòng)化測試 (三) Web自動(dòng)化測試原理

    自動(dòng)化測試 (四) 自動(dòng)卸載軟件

    自動(dòng)化測試 (五) 讀寫64位操作系統(tǒng)的注冊(cè)表

    轉(zhuǎn)載于:https://www.cnblogs.com/MarchThree/p/3866842.html

    總結(jié)

    以上是生活随笔為你收集整理的C#_自动化测试 (四) 自动卸载软件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。