python设置进程优先级_如何使用pywin32和WMI设置进程优先级?

from win32com.client import GetObject

for proc in GetObject("WinMgmts:{impersonationLevel=impersonate,(IncreaseBasePriority,Debug)}").InstancesOf("Win32_Process"):

if proc.CommandLine == "":

proc.SetPriority(4) # fails

我尝试传递优先级类(0x40)和实际优先级(4),但都失败,并显示以下消息:

File "test.py", line 5, in

proc.SetPriority(0x40)

File "C:\Progs\Python26\lib\site-packages\win32com\client\dynamic.py", line 505, in __getattr__

ret = self._oleobj_.Invoke(retEntry.dispid,0,invoke_type,1)

pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, u'SWbemObjectEx', u'Invalid parameter ', None, 0, -2147217400), None)

我可以看到它不喜欢某些参数,但是为什么不呢?

我对使用SetPriorityClass的非WMI解决方案不感兴趣.我给自己SeDebugPrivilege如下:

import win32security, ntsecuritycon, win32con, win32api

privs = ((win32security.LookupPrivilegeValue('',ntsecuritycon.SE_DEBUG_NAME), win32con.SE_PRIVILEGE_ENABLED),)

hToken = win32security.OpenProcessToken(win32api.GetCurrentProcess(), win32security.TOKEN_ALL_ACCESS)

win32security.AdjustTokenPrivileges(hToken, False, privs)

win32api.CloseHandle(hToken)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值