那么我在Windows 8.1上尝试了这个:
start /low cmd
我希望将cmd进程设置为低优先级。但是当我执行以下操作时:
start /realtime cmd
我以高优先级获得了新的cmd进程。
有没有一种方法可以在不手动设置的情况下实现实时性? 另外,我是否可以通过我的应用程序代码(例如WinApi或其他)来设置所需的优先级?
那么我在Windows 8.1上尝试了这个:
start /low cmd
我希望将cmd进程设置为低优先级。但是当我执行以下操作时:
start /realtime cmd
我以高优先级获得了新的cmd进程。
有没有一种方法可以在不手动设置的情况下实现实时性? 另外,我是否可以通过我的应用程序代码(例如WinApi或其他)来设置所需的优先级?
当您以管理员身份执行start
命令时,它才会工作。
从技术上讲,您需要具备SeIncreaseBasePriorityPrivilege
,管理员通常都有这个权限。
如果没有该权限,在我的研究中我没有发现任何相关文档,似乎您将被静默回退到一个适用于调用账户的优先级。
我怀疑Win32也不会有帮助,因为相同的限制肯定也适用。
为使CMD或Process Lasso在没有管理员权限的情况下正常工作,需要进行以下更改:
secpol.msc > 本地策略 > 用户权限分配 > 增加调度优先级 > 属性 > 添加用户或组 > 输入“Everyone” > 检查名称 > 确定
我需要解决方案,以启动在后台设置命令优先级的VBS脚本,但我无法以管理员身份打开VBS脚本。
@ECHO OFF
ECHO Setting process priority
wmic process where name="process.exe" CALL setpriority "Realtime"