La priorité du processus de modification ne fonctionne pas

Je lance une application Audio Repeater qui me permet de jouer du son à travers mon casque et mes haut-parleurs en même temps. L’application elle-même a la capacité de se définir sur “RealTime”, mais elle ne le définit que très haut. Je dois donc le définir moi-même dans le Gestionnaire des tâches.

J’ai décidé d’automatiser cela, j’ai donc écrit un petit script en C # qui changerait la priorité du processus pour moi (que j’appendais pour démarrer une fois que j’aurais fini)

namespace ProcessRealtime { class Program { static void Main(ssortingng[] 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(); } } } 

Le problème est qu’il n’applique pas les modifications. Capture d'écran du bureau

Est-ce que quelqu’un sait pourquoi cela ne fonctionnera pas?

Vous devez exécuter VOTRE script avec le privilège administratif.

Essaye ça :

 using (Process p = Process.GetCurrentProcess()) p.PriorityClass = ProcessPriorityClass.High; 

Vous pouvez exécuter en tant qu’administrateur ou supprimer UAC car vous avez besoin de droits pour accéder à un processus que vous n’avez pas exécuté.

Cela fonctionne pour moi:

 using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; // #define DEBUG namespace ProcessRealtime { class PUBG_RealTime { static ssortingng processName = "TslGame"; static ProcessPriorityClass newPriority = ProcessPriorityClass.High; static void Main(ssortingng[] args) { #if DEBUG PutDebug("Start!"); #endif Process[] processes = Process.GetProcessesByName(processName); #if DEBUG PutDebug(processes.Length + " processed found"); #endif foreach (Process proc in processes) { #if DEBUG PutDebug("New process found"); #endif Console.WriteLine("Changing Priority for id:" + proc.Id + " to " + newPriority.ToSsortingng()); proc.PriorityClass = newPriority; #if DEBUG PutDebug("Changed priority for " + proc.Id); #endif } #if DEBUG PutDebug("No more processes.."); #endif Console.Write("Press a key, it's over !"); Console.ReadLine(); } #if DEBUG static bool debug = true; static int debugInc = 1; static void PutDebug(ssortingng info = "") { if(debug){ Console.WriteLine("Debug" + debugInc + ": " + info); debugInc++; } } #endif } }