更改流程优先级不起作用

Oli*_*ker 14 c# windows

我运行了一个Audio Repeater应用程序,它允许我同时通过我的耳机和扬声器播放声音.应用程序本身具有将自身设置为"RealTime"的能力,但它只将其设置为高,所以此刻我必须自己在任务管理器中设置它.

我决定自动执行此操作,因此我在C#中编写了一个小脚本,它将改变我的进程优先级(我会在完成后添加启动)

namespace ProcessRealtime
{
    class Program
    {
        static void Main(string[] args)
        {
            Process[] processes = Process.GetProcessesByName("audiorepeater");
            foreach (Process proc in processes)
            {
                Console.WriteLine("Changing Priority for: "+proc.Id+" To RealTime");
                proc.PriorityClass = ProcessPriorityClass.RealTime;
                if (proc.PriorityClass == ProcessPriorityClass.RealTime)
                {
                    Console.WriteLine("Worked");
                }
            }
            Console.ReadLine();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是它不适用更改. 桌面截图

有谁知道为什么这不起作用?

Fro*_*ire 10

您需要使用管理权限运行您的脚本.

  • @OliverBaker,如果您是管理用户,任务管理器可以执行“透明提升”来提升自身,而无需 UAC 提示。[只有由“Microsoft Windows”证书签名的软件才能执行此操作](https://technet.microsoft.com/en-us/magazine/2009.07.uac.aspx)。 (2认同)

Asa*_*eem 7

试试这个 :

using (Process p = Process.GetCurrentProcess())
    p.PriorityClass = ProcessPriorityClass.High;  
Run Code Online (Sandbox Code Playgroud)