Name of files opened by a process in window?
Asked Answered
D

2

11

How to print name of file open by some process (PID) in window? Or All Processes (PID) currently open a file.
Process Explorer is a utility works for same. But how does it work not mentioned? Any /proc filesystem kind of thing present in windows?

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

Got two solutions in Python:
1. import psutil
2. import win32api, win32con, win32process

But it is still a question to me!
1. How does these libraries works?
2. Any register, memory or virtual file system keeps this information?

If its possible in window, Why this information not present in TasK-Manager?

Dogtrot answered 4/10, 2012 at 11:25 Comment(0)
G
22

Here is the platform independent solution in python.

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

So i refer you psutil package it has too good functions for getting information on running processes

Gourmandise answered 4/10, 2012 at 11:37 Comment(2)
Will work on window?..Can you answer me how does psutil work?Dogtrot
"cross-platform process and system utilities module for Python" this is what psutil says. Work for sure.Gourmandise
R
1

Here's a way to get a filename from pid using the Win32 API:

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

This works on windows only (obviously).

Reconcilable answered 4/10, 2012 at 11:42 Comment(1)
Check out Python for Windows for python versions that ship with the Win32 API bindings, or the PyWin32 package. Win32 API is the definitive API for almost everything that happens in Windows, and this library provides bindings to those API functions.Reconcilable

© 2022 - 2024 — McMap. All rights reserved.