問題が発生しました。マシン上のすべてのプロセスのすべてのモジュール (dll ファイル) を取得しようとします。CMDでこのコマンドを実行しようとしました:
tasklist /m
しかし、これは 64 ビット システムの問題です。64 ビット マシンで 32 ビット プログラムを実行している場合、すべてのモジュールが一覧表示されるわけではありません。
ntdll.dll, wow64.dll, wow64win.dll, wow64cpu.dll
次に、pywin32 (win32api) を使用して、Python スクリプトでこれを実行しようとしました。
これはコードです:
import win32security,win32file,win32api,ntsecuritycon,win32con,win32process
processes = win32process.EnumProcesses()
for pid in processes:
dll_list = []
try:
if pid:
print('pid:', pid)
ph = win32api.OpenProcess(win32con.MAXIMUM_ALLOWED, False, pid)
dll = win32process.EnumProcessModules(ph)
for dll_name in dll:
dll_name_norm = win32process.GetModuleFileNameEx(ph, dll_name)
dll_list.append(dll_name_norm)
print("dll_list: ", dll_list)
print("--------------")
except:
print("Error")
print("--------------")
しかし、結果は同じです。=(各プロセスでロードされたすべてのdllファイルを確認する方法を教えてください。
PSコマンドライン、タスクリスト(ListDlls、Process Explorerなどではありません)、またはPythonのスクリプトなどの標準的なWindowsツールのみを使用できます。
本当にありがとうございました!