Python寫自動化之設置Windows自動登錄

在某些情況下,測試過程會涉及到操作系統的重啓過程,比如說測試操作系統重啓後,程序的啓動時間評測;這時如果操作系統設置了用戶名密碼的情況下,就會涉及到如何實現Windows的自動登錄。

首先,看下Windows如何實現自動登錄,看下如何手動操作吧,百度經驗:http://jingyan.baidu.com/article/54b6b9c0d7bf6c2d583b47f2.html

瞭解了手動操作的過程,自動化中如何實現呢?修改註冊表......

ok,看下HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon項下,含有默認用戶名、密碼、是否自動登錄等信息,那麼只需要保存用戶名密碼到此項下,系統就可以自動登錄了,看下代碼:

def SetAutoLoginWin(username,password):
    """
    | #設置window自動登錄
    """
    key = None
    syswow = os.getenv("windir")+"\\SysWOW64"
    for i in range(2):
        try:
            if os.path.exists(syswow):
                key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, r"Software\Microsoft\Windows NT\CurrentVersion\Winlogon", 0, _winreg.KEY_ALL_ACCESS|win32con.KEY_WOW64_64KEY)
            else:
                key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, r"Software\Microsoft\Windows NT\CurrentVersion\Winlogon", 0, _winreg.KEY_ALL_ACCESS)
        except:
            pass

        if key:
            break
        else:
            _winreg.CreateKey(_winreg.HKEY_LOCAL_MACHINE,r"Software\Microsoft\Windows NT\CurrentVersion\Winlogon")

    try:
        _winreg.SetValueEx(key,"DefaultUserName",0,_winreg.REG_SZ,username)
        _winreg.SetValueEx(key,"DefaultPassword",0,_winreg.REG_SZ,password)
        _winreg.SetValueEx(key,"AutoAdminLogon",0,_winreg.REG_SZ,"1")
        _winreg.SetValueEx(key,"ForceAutoLogon",0,_winreg.REG_SZ,"1")
    except:
        return False
    return True

同樣,清除自動化登錄操作,也比較簡單,只需要將註冊表項清除掉就OK了,代碼如下

#清除window自動登錄
def DelAutoLoginWin():
    """
    | #清除window自動登錄
    """
    items=("DefaultUserName","DefaultPassword","AutoAdminLogon","ForceAutoLogon")
    for item in items:
        DeleteRegValue(r"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon",item)

這樣,自動化中涉及到需要重啓的操作時,我們就可以讓系統自動登錄,並繼續執行腳本了···

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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章