2012-10-04 9 views
11

Come stampare il nome del file aperto da qualche processo (PID) nella finestra? Al momento tutti i processi (PID) aprono un file.
Process Explorer è un'utilità che funziona per lo stesso. Ma come funziona non menzionato? Qualsiasi file system /proc presente in Windows?Nome dei file aperti da un processo nella finestra?

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

Got due soluzioni in Python:
1. importazione psutil
2. importazione Win32API, win32con, win32process

Ma è ancora una domanda per me!
1. Come funzionano queste librerie?
2. Qualsiasi registro, memoria o file system virtuale mantiene queste informazioni?

Se è possibile in finestra, Perché questa informazione non è presente in TasK-Manager?

risposta

22

Ecco la soluzione indipendente dalla piattaforma in python.

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

Quindi vi rimando psutil pacchetto ha anche buone funzioni per ottenere le informazioni sui processi in esecuzione

+0

Lavorerà alla finestra? .. Puoi rispondermi come funziona lo psutil? –

+0

"Modulo di utilità di processo e di sistema multipiattaforma per Python" questo è ciò che dice psutil. Lavorare di sicuro. –

1

Ecco un modo per ottenere un nome di file da pid utilizzando l'API 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 

Questo funziona solo su Windows (ovviamente).

+0

Come funziona questa libreria? –

+1

Controlla [Python per Windows] (http://www.python.org/getit/windows/) per le versioni python fornite con i binding API Win32 o [PyWin32] (http://sourceforge.net/projects/pywin32 /). L'API Win32 è l'API definitiva per quasi tutto ciò che accade in Windows e questa libreria fornisce collegamenti a tali funzioni API. –

+0

Grazie per le tue risposte –

Problemi correlati