Windows下使用Python调用API获取进程列表
作者:佚名
上传时间:2023-04-25
运行软件:PyCharm 2021.1.2
软件版本:Python 3.8.5
版权申诉
介绍使用Python编写程序,在Windows操作系统下调用API函数获取进程列表。程序使用了ctypes库调用kernel32.dll中的CreateToolhelp32Snapshot和Process32First/Process32Next函数。
import ctypes
import struct
from collections import namedtuple
# 定义PROCESSENTRY32结构体
class PROCESSENTRY32(ctypes.Structure):
_fields_ = [("dwSize", ctypes.c_uint32),
("cntUsage", ctypes.c_uint32),
("th32ProcessID", ctypes.c_uint32),
("th32DefaultHeapID", ctypes.POINTER(ctypes.c_uint32)),
("th32ModuleID", ctypes.c_uint32),
("cntThreads", ctypes.c_uint32),
("th32ParentProcessID", ctypes.c_uint32),
("pcPriClassBase", ctypes.c_long),
("dwFlags", ctypes.c_uint32),
("szExeFile", ctypes.c_char * 260)]
# 获取进程列表函数
def get_process_list():
# 加载kernel32.dll
kernel32 = ctypes.WinDLL('kernel32', use_last_error=True)
# 创建进程快照(TH32CS_SNAPPROCESS表示只获取进程信息)
hProcessSnap = kernel32.CreateToolhelp32Snapshot(0x02, 0)
if hProcessSnap == -1:
raise ValueError(ctypes.WinError(ctypes.get_last_error()))
# 定义结构体大小
pe32 = PROCESSENTRY32()
pe32.dwSize = ctypes.sizeof(PROCESSENTRY32)
# 获取第一个进程
ret = kernel32.Process32First(hProcessSnap, ctypes.byref(pe32))
if not ret:
raise ValueError(ctypes.WinError(ctypes.get_last_error()))
# 循环获取进程列表
all_processes = []
while ret:
process = {
"pid": pe32.th32ProcessID,
"ppid": pe32.th32ParentProcessID,
"name": pe32.szExeFile.decode('gbk'),
"priority": pe32.pcPriClassBase
}
all_processes.append(process)
ret = kernel32.Process32Next(hProcessSnap, ctypes.byref(pe32))
# 关闭句柄
kernel32.CloseHandle(hProcessSnap)
return all_processes
if __name__ == '__main__':
# 调用获取进程列表函数
processes = get_process_list()
# 打印进程信息
print("进程列表:")
for process in processes:
print("进程名:%s,进程ID:%s,父进程ID:%s,优先级:%s" %
(process["name"], process["pid"], process["ppid"], process["priority"]))
免责申明:文章和图片全部来源于公开网络,如有侵权,请通知删除 server@dude6.com
用户评论
相关推荐
Windows下使用Python调用API获取进程列表
介绍使用Python编写程序,在Windows操作系统下调用API函数获取进程列表。程序使用了ctypes库调用kernel32.dll中的CreateToolhelp32Snapshot和Proce
Python 3.8.5
PyCharm 2021.1.2
2023-04-25 02:09
使用Python调用Windows API获取进程相关信息
介绍如何使用Python调用Windows API中的一些函数获取进程PID、路径、命令行等相关信息的实现方法。'''import ctypesfrom ctypes import wintyp
Python 3.8.5
PyCharm 2020.2
2023-05-28 19:05
macOS下使用Python调用系统API获取文件列表
此示例代码演示如何使用Python在macOS上调用系统API来获取特定文件夹中的文件列表,并打印文件名和路径信息。import os# 获取当前用户桌面路径desktop_path = os
macOS 10.15及以上
Python 3.x
2023-11-24 01:22
c++获取进程信息列表和进程所调用的dll列表
主要介绍了c++获取进程信息列表和进程所调用的dll列表,大家参考使用吧
PDF
169KB
2020-10-16 21:39
获取进程列表
获取计算机当前正在运行的进程及其调用的模块
RAR
0B
2018-12-07 09:35
Python调用windows下DLL
在python中某些时候需要C做效率上的补充,在实际应用中,需要做部分数据的交互。使用python中的ctypes模块可以很方便的调用windows的dll(也包括linux下的so等文件),下面将详
DOCX
0B
2019-05-04 22:31
获取系统进程列表
提供一个获取系统正在运行进程列表。找到对应的进程名称后可以调用API函数对该进程进行操作。这里只提供一个列表
RAR
0B
2019-07-11 04:30
使用JNA调用WINDOWS API
一直以为调用本地链接库函数的时候一定要借助JNI或者SWT来实现,一日中无意看到JNA,发现它也可以实现这类调用
JAR
0B
2019-09-17 23:30
Windows下使用Python调用网页API示例代码
本示例代码演示了如何在Windows环境下使用Python语言调用网页API,将API返回的数据打印输出,并进行简单处理。示例中使用了Python自带的“urllib”和“json”模块进行API请求
Python 3.9.0
Python
2023-03-18 01:23
使用Python在Windows下获取进程信息的方法
介绍如何使用Python在Windows下获取进程的PID、名称、CPU占用率等信息。使用了win32api和psutil库,通过调用系统接口获取信息。import win32apiimport
Python 3.7.9
无
2023-03-19 13:33