11

如何在窗口中打印由某个进程(PID)打开的文件名?或所有进程 (PID) 当前打开一个文件。
Process Explorer是一个同样适用的实用程序。但是没有提到它是如何工作的?Windows 中存在 任何/proc 文件系统之类的东西吗?

Can we read any Window's Registry?  
I wants to write a programming code And I rarely work on windows. 

在 Python 中得到了两个解决方案:
1. import psutil
2. import win32api, win32con, win32process

但这对我来说仍然是一个问题!
1. 这些库是如何工作的?
2. 是否有任何寄存器、内存或虚拟文件系统保存这些信息?

如果它可能在窗口中,为什么此信息不存在于任务管理器中?

4

2 回答 2

23

这是python中的平台独立解决方案。

   import psutil
   p = psutil.Process(os.getpid()) # or PID of process
   p.open_files()

所以我推荐你psutil包它有很好的功能来获取有关正在运行的进程的信息

于 2012-10-04T11:37:40.243 回答
1

这是一种使用 Win32 API 从 pid 获取文件名的方法:

import win32api, win32con, win32process

handle = win32api.OpenProcess(win32con.PROCESS_ALL_ACCESS, False, pid) #get handle for the pid
filename = win32process.GetModuleFileNameEx(handle, 0) #get exe path & filename for handle

这仅适用于 Windows(显然)。

于 2012-10-04T11:42:10.620 回答