2012-10-04 16 views
11

Wie Name der Datei von einem Prozess (PID) in Fenster geöffnet zu drucken? Oder Alle Prozesse (PID) öffnen derzeit eine Datei.
Process Explorer ist ein Dienstprogramm funktioniert für die gleichen. Aber wie funktioniert es nicht erwähnt? Beliebige /proc Dateisystem Art der Sache in Windows vorhanden?Name der Dateien, die von einem Prozess im Fenster geöffnet wurden?

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

Got zwei Lösungen in Python:
1. Import psutil
2. Import win32api, win32con, win32process

Aber es ist immer noch eine Frage an mich!
1. Wie funktionieren diese Bibliotheken?
2. Jedes Register, Speicher oder virtuelles Dateisystem behält diese Informationen?

Wenn es im Fenster möglich ist, Warum diese Information nicht in TasK-Manager vorhanden?

Antwort

22

Hier ist die plattformunabhängige Lösung in Python.

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

So verweise ich Sie psutil Paket es Informationen über laufende Prozesse

+0

Wird am Fenster arbeiten? .. Können Sie mir antworten, wie funktioniert PSUtil? –

+0

"Cross-Plattform-Prozess-und System-Utilities-Modul für Python" das ist, was Psutil sagt. Arbeiten Sie sicher. –

1

Hier ist ein Weg, um einen Dateinamen erhalten von pid die Win32-API für immer zu gut funktioniert hat:

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 

Diese funktioniert nur auf Windows (offensichtlich).

+0

Wie funktioniert diese Bibliothek? –

+1

Überprüfen Sie [Python für Windows] (http://www.python.org/getit/windows/) auf Python-Versionen, die mit den Win32-API-Bindungen geliefert werden, oder auf [PyWin32] (http://sourceforge.net/projects)/pywin32 /) Paket. Win32 API ist die definitive API für fast alles, was in Windows passiert, und diese Bibliothek bietet Bindungen zu diesen API-Funktionen. –

+0

Danke für Ihre Antworten –