窗口中进程打开的文件名?

时间:2012-10-04 11:25:28

标签: python c windows filesystems windows-api-code-pack

如何在窗口中通过某个进程(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.输入psutil
    2.导入win32api,win32con,win32process

但这对我来说仍然是一个问题!     1.这些图书馆如何运作?     2.任何寄存器,内存或虚拟文件系统都会保留此信息吗?

  

如果可以在窗口中显示,为什么TasK-Manager中不存在此信息?

2 个答案:

答案 0 :(得分:22)

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

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

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

答案 1 :(得分: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(显然)。