以下是我的两个文件,希望大神或者喜欢尝试的兄弟看看。
test_no1.py
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import ctypes;
import psutil
import test_no2
metaclass = type;
class PROCESSENTRY32(ctypes.Structure):
fields = [
("dwSize",ctypes.c_ulong),
("cntUsage",ctypes.c_ulong),
("th32ProcessID",ctypes.c_ulong),
("th32DefaultHeapID",ctypes.c_void_p),
("th32ModuleID",ctypes.c_ulong),
("cntThreads",ctypes.c_ulong),
("th32ParentProcessID",ctypes.c_ulong),
("pcPriClassBase",ctypes.c_long),
("dwFlags",ctypes.c_ulong),
("szExeFile",ctypes.c_char*260)
]
kernel32 = ctypes.windll.LoadLibrary("kernel32.dll");
pHandle = kernel32.CreateToolhelp32Snapshot(0x2,0x0);
import sys;
if pHandle==-1:
sys.exit();
proc = PROCESSENTRY32();
proc.dwSize = ctypes.sizeof(proc);
while kernel32.Process32Next(pHandle,ctypes.byref(proc)):
ss = ctypes.string_at(proc.szExeFile)
ss=str(ss)
ss=ss.strip("b'")
if ss == "Tra_ser.exe":#获取此服务的cpu占用率
proc_PID = proc.th32ProcessID
print(proc.th32ProcessID)
p = psutil.Process(proc.th32ProcessID)
p.get_cpu_percent(interval=0)
print("####")
print(p.get_cpu_percent(interval=0))#第一次调用
print("####")
kernel32.CloseHandle(pHandle);
#TODO:test_no2的函数接口
test_no2.test(proc_PID)
test_no2.py
import psutil
def test(a):
p1 = psutil.Process(a)
cpu_per = p1.get_cpu_percent(interval=0)#再次调用获取cpu占用率
print("我到达被启动函数,下面打印进程cpu使用率")
print(cpu_per)