在開發過程中,經常會碰到需要設置程序優先級,這時候可以手動到任務管理器中調整,但是這多多少少有些不方便,那么這時候我們就可以通過subprocess調用wmic命令來實現,方法如下:
step 1 必要的引用:
import subprocess # Subprocess calling
step 2 函數封裝:
def set_priority_by_name(process_name, priority="normal"):priority_map = {"realtime": 256, # REALTIME_PRIORITY_CLASS(實時)"high": 128, # HIGH_PRIORITY_CLASS(高)"above_normal": 32768, # ABOVE_NORMAL_PRIORITY_CLASS(高于正常)"normal": 32, # NORMAL_PRIORITY_CLASS(正常)"below_normal": 16384, # BELOW_NORMAL_PRIORITY_CLASS(低于正常)"low": 64, # IDLE_PRIORITY_CLASS(低)}# 獲取優先級數值(默認正常)priority_value = priority_map.get(priority.lower(), 32)# 構造 wmic 命令cmd = f'wmic process where name="{process_name}" call setpriority {priority_value}'try: # 需要管理員權限(尤其是 high/realtime)subprocess.run(cmd, check=True, shell=True, capture_output=True)except subprocess.CalledProcessError as e:print(f"speed level set failed: {e.stderr.decode().strip()}")except Exception as e:print(f"unknown error: {str(e)}")else:print(f"set {process_name}'s priority to: {priority}")#end tray#end def
step3. 調用?
set_priority_by_name("yourapp1.exe", "above_normal") # 設為above_normal
set_priority_by_name("yourapp2.exe", "high") # 設為high