Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Get CPU Priority of a ProcessID
I'd like to read the current CPU priority as found in the task
managers' processes tab, when right-clicking on a process, and selecting 'set priority'. I've tried using Private Declare Function GetPriorityClass Lib "kernel32" (ByVal hProcess As Long) As Long and using Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" _ & strComputer & "\root\cimv2") Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process") For Each objProcess In colProcesses r = r + 1 POutput(r, 1) = objProcess.ProcessID POutput(r, 2) = objProcess.Name POutput(r, 3) = objProcess.Priority POutput(r, 4) = objProcess.Handle POutput(r, 5) = GetPriorityClass(POutput(r, 4)) Next but, but this GetPriorityClass function always returns a zero, even though I can see some priorities are 'AboveNormal'. So this is where I'm stuck.. Your help is appreciated. Poniente |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
Get CPU Priority of a ProcessID
Hi Poniente;
You dont need the "GetPriorityClass" API function", you can translate the process priority value by using a function like : ..... POutput(r, 3) = PriorityClass(objProcess.Priority) ..... ' Base priority of a process is a numeric value from ' zero (lowest priority) to 31 (highest priority). Private Function PriorityClass(ByVal Priority&) As String PriorityClass = "Unknown" Select Case Priority Case 4: PriorityClass = "Low" Case 8: PriorityClass = "Normal" Case 13: PriorityClass = "High" Case 24: PriorityClass = "RealTime" End Select End Function Regards; MP "Poniente" a écrit dans le message de ... I'd like to read the current CPU priority as found in the task managers' processes tab, when right-clicking on a process, and selecting 'set priority'. I've tried using Private Declare Function GetPriorityClass Lib "kernel32" (ByVal hProcess As Long) As Long and using Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" _ & strComputer & "\root\cimv2") Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process") For Each objProcess In colProcesses r = r + 1 POutput(r, 1) = objProcess.ProcessID POutput(r, 2) = objProcess.Name POutput(r, 3) = objProcess.Priority POutput(r, 4) = objProcess.Handle POutput(r, 5) = GetPriorityClass(POutput(r, 4)) Next but, but this GetPriorityClass function always returns a zero, even though I can see some priorities are 'AboveNormal'. So this is where I'm stuck.. Your help is appreciated. Poniente |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
Get CPU Priority of a ProcessID
Thanks again Michel (and sorry for the late reply).
On 23 aug, 13:14, "Michel Pierron" wrote: HiPoniente; You dont need the "GetPriorityClass" API function", you can translate the process priority value *by using a function like : .... POutput(r, 3) = PriorityClass(objProcess.Priority) .... ' Base priority of a process is a numeric value from ' zero (lowest priority) to 31 (highest priority). Private Function PriorityClass(ByVal Priority&) As String PriorityClass = "Unknown" Select Case Priority Case 4: PriorityClass = "Low" Case 8: PriorityClass = "Normal" Case 13: PriorityClass = "High" Case 24: PriorityClass = "RealTime" End Select End Function Regards; MP "Poniente" a écrit dans le message ... I'd like to read the current CPU priority as found in the task managers' processes tab, when right-clicking on a process, and selecting 'set priority'. I've tried using Private Declare Function GetPriorityClass Lib "kernel32" (ByVal hProcess As Long) As Long and using * *Set objWMIService = GetObject("winmgmts:" _ * * * *& "{impersonationLevel=impersonate}!\\" _ * * * *& strComputer & "\root\cimv2") * *Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process") * *For Each objProcess In colProcesses * * * *r = r + 1 * * * *POutput(r, 1) = objProcess.ProcessID * * * *POutput(r, 2) = objProcess.Name * * * *POutput(r, 3) = objProcess.Priority * * * *POutput(r, 4) = objProcess.Handle * * * *POutput(r, 5) = GetPriorityClass(POutput(r, 4)) * *Next but, but this GetPriorityClass function always returns a zero, even though I can see some priorities are 'AboveNormal'. So this is where I'm stuck.. Your help is appreciated. Poniente |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Solver Priority | Excel Worksheet Functions | |||
priority setting | Excel Discussion (Misc queries) | |||
Priority Charge | Excel Discussion (Misc queries) | |||
Sorting according to priority help!! | Excel Discussion (Misc queries) | |||
Event priority | Excel Programming |