Python寫自動化之以不同優先級啓動進程

在windows上的進程,可以設置優先級,如下圖


那麼,如果我們在自動化測試過程中,需要設置進程的優先級,如何來做呢?

下面使用win32相關的接口實現此功能,代碼如下:

# 獲取用戶句柄
        hToken = win32security.OpenProcessToken(win32api.GetCurrentProcess(), win32con.TOKEN_DUPLICATE | win32con.TOKEN_ADJUST_DEFAULT\
                                            |win32con.TOKEN_QUERY | win32con.TOKEN_ASSIGN_PRIMARY)
        hNewToken = hToken
        authority = 0x0002000
        if securityLevel != "":
            authority = 0x0002000
        if securityLevel.lower() == "low":
            authority = 0x0001000
            hNewToken = win32security.DuplicateTokenEx(hToken, win32security.SecurityImpersonation, 0, win32security.TokenPrimary, None)
        # 構建相應級別的sid
        sid = win32security.SID()
        sid.Initialize((0, 0, 0, 0, 0, 16), 1)
        sid.SetSubAuthority(0, authority)

        # 將sid設置到用戶句柄
        win32security.SetTokenInformation(hNewToken, win32security.TokenIntegrityLevel,(sid, win32security.SE_GROUP_INTEGRITY))

        commandline = procPath + " " + param

        # 啓動程序
        si = win32process.STARTUPINFO()
        win32process.CreateProcessAsUser(hNewToken, None, commandline, None, None, False, 0, None, None, si)
這樣,我們就可以使用不同優先級啓動了相應的進程~·~


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

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


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