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