Python寫自動化之註冊表的讀寫操作

來源:互聯網
上載者:User

標籤:註冊表   讀取   修改   

Windows上的自動化測試經常會接觸到對於註冊表的讀寫操作問題,比如,擷取一個程式的安裝目錄,一般情況下,我們可以去註冊表的App Paths下去尋找,這時就涉及到了註冊表的讀取操作,我們使用Python的_winreg模組來實現,代碼如下:

def reg_query(path, key):    try:        path = path.replace("/", "\\")        rootName = path[:path.find("\\")]        subPath = path[path.find("\\") + 1:]        rootKey = _query_root(rootName)        if rootKey is None:            return ""        print path        root = _winreg.OpenKey(rootKey, subPath)        value, type = _winreg.QueryValueEx(root, key)        return value    except:        # log.exception(traceback.format_exc())        return ""

其中_query_root方法,是根據rootName去擷取Root的枚舉值,代碼如下:

def _query_root(rootName):    rootKey = None    if rootName == "HKEY_LOCAL_MACHINE":        rootKey = _winreg.HKEY_LOCAL_MACHINE    elif rootName == "HKEY_CLASSES_ROOT":        rootKey = _winreg.HKEY_CLASSES_ROOT    elif rootName == "HKEY_CURRENT_USER":        rootKey = _winreg.HKEY_CURRENT_USER    elif rootName == "HKEY_USERS":        rootKey = _winreg.HKEY_USERS    elif rootName == "HKEY_CURRENT_CONFIG":        rootKey = _winreg.HKEY_CURRENT_CONFIG    return rootKey
那我們如何使用呢?使用方式如下,擷取Python的路徑:

pythonPath = reg_query(r"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Python.exe", "")

讀取操作完成了,有些情況下,為了在測試中,修改一些環境或程式配置,我們需要對註冊表進行寫入操作,看下代碼吧

def req_add(path, key, value, type=_winreg.REG_SZ):    try:        path = path.replace("/", "\\")        rootName = path[:path.find("\\")]        subPath = path[path.find("\\") + 1:]        rootKey = _query_root(rootName)        if rootKey is None:            return ""        print path        root = _winreg.OpenKey(rootKey, subPath, 0, _winreg.KEY_ALL_ACCESS)        # subKey = _winreg.CreateKeyEx(root, key)        _winreg.SetValueEx(root, key, 0, type, value)        return True    except:        log.exception(traceback.format_exc())        return False
用法也比較簡單,比如,我們要在Python的路徑下,增加一個選項值,如下:

reg_add(r"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Python.exe", "test", "test")


轉載請註明:http://blog.csdn.net/sogouauto

探勘測試奧義,交流測試技術,歡迎關注“搜狗測試”

Python寫自動化之註冊表的讀寫操作

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.