如何以实时优先级启动可执行文件?
How to start executable with realtime priority?
所以我在 windows 8.1:
上试试这个
start /low cmd
我得到低优先级的 cmd 进程。但是当我这样做时:
start /realtime cmd
我获得了高优先级的新 cmd 进程。
有没有不用手动设置就可以获得实时的方法?
另外,我能否以某种方式从我的应用程序代码(可能是 WinApi 或其他东西)中设置所需的优先级?
当您以管理员身份执行 start
时有效。
从技术上讲,您需要管理员通常拥有的 SeIncreaseBasePriorityPrivilege
。
如果您不这样做,尽管我找不到关于该事实的任何文档,但您会默默地恢复到调用帐户仍然可行的优先级。
我怀疑 Win32 是否会有帮助,因为同样的限制肯定适用。
@ECHO OFF
ECHO Setting process priority
wmic process where name="process.exe" CALL setpriority "Realtime"
一个解决方案是按原样启动进程,然后以管理员身份运行上述批处理脚本文件。
要在没有管理员权限的情况下从 CMD 或 Process Lasso 进行实时工作,需要在以下位置进行更改:
secpol.msc > 本地策略 > 用户权限分配 > 增加调度优先级 > 属性 > 添加用户或组 > 记下 "Everyone" > 检查名称 > 确定
我需要启动 VBS 脚本的解决方案 运行 在后台设置优先级命令的 CMD,我无法以管理员身份打开 VBS 脚本。
所以我在 windows 8.1:
上试试这个start /low cmd
我得到低优先级的 cmd 进程。但是当我这样做时:
start /realtime cmd
我获得了高优先级的新 cmd 进程。
有没有不用手动设置就可以获得实时的方法? 另外,我能否以某种方式从我的应用程序代码(可能是 WinApi 或其他东西)中设置所需的优先级?
当您以管理员身份执行 start
时有效。
从技术上讲,您需要管理员通常拥有的 SeIncreaseBasePriorityPrivilege
。
如果您不这样做,尽管我找不到关于该事实的任何文档,但您会默默地恢复到调用帐户仍然可行的优先级。
我怀疑 Win32 是否会有帮助,因为同样的限制肯定适用。
@ECHO OFF
ECHO Setting process priority
wmic process where name="process.exe" CALL setpriority "Realtime"
一个解决方案是按原样启动进程,然后以管理员身份运行上述批处理脚本文件。
要在没有管理员权限的情况下从 CMD 或 Process Lasso 进行实时工作,需要在以下位置进行更改:
secpol.msc > 本地策略 > 用户权限分配 > 增加调度优先级 > 属性 > 添加用户或组 > 记下 "Everyone" > 检查名称 > 确定
我需要启动 VBS 脚本的解决方案 运行 在后台设置优先级命令的 CMD,我无法以管理员身份打开 VBS 脚本。