标签:优先级 win32process 进程 用户句柄
在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
探索测试奥义,交流测试技术,欢迎关注“搜狗测试”
标签:优先级 win32process 进程 用户句柄
原文地址:http://blog.csdn.net/sogouauto/article/details/44303141