2012-10-04 33 views
11

¿Cómo imprimir el nombre del archivo abierto por algún proceso (PID) en la ventana? O todos los procesos (PID) actualmente abren un archivo.
Process Explorer es una utilidad que funciona igual. Pero, ¿cómo funciona no se menciona? Cualquier /sistema de archivos proc tipo de cosa presente en windows?Nombre de los archivos abiertos por un proceso en la ventana?

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

consiguió dos soluciones en Python:
1. importación psutil
2. win32api importación, win32con, win32process

Pero todavía es una pregunta para mí!
1. ¿Cómo funcionan estas bibliotecas?
2. Cualquier registro, memoria o sistema de archivos virtual mantiene esta información?

Si es posible en la ventana, ¿Por qué esta información no está presente en TasK-Manager?

Respuesta

22

Aquí está la solución independiente de la plataforma en Python.

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

Así remito psutil paquete tiene también buenas funciones para obtener información sobre los procesos que se ejecutan

+0

¿Funcionará en la ventana? ¿Me puede responder cómo funciona psutil? –

+0

"módulo de utilidades de sistema y proceso multiplataforma para Python" esto es lo que dice psutil. Trabaja seguro –

1

Aquí está una manera de obtener un nombre de archivo de PID usando la API de Win32:

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 

Este solo funciona en Windows (obviamente).

+0

¿Cómo funciona esta biblioteca? –

+1

Consulte [Python para Windows] (http://www.python.org/getit/windows/) para las versiones de Python que se envían con los enlaces API de Win32, o la [PyWin32] (http://sourceforge.net/projects/pywin32 /) paquete. Win32 API es la API definitiva para casi todo lo que sucede en Windows, y esta biblioteca proporciona enlaces a esas funciones API. –

+0

Gracias por sus respuestas –

Cuestiones relacionadas