Tom*_*ica 5 dll cmd command-prompt windows-7-x64
Windows 上的命令tasklist具有非常有用的功能:它可以列出dll一个进程的所有模块或所有进程。下面的命令将列出以下命令使用的所有 DLL 文件explorer.exe:
tasklist /fi "ImageName eq explorer.exe" /m
Run Code Online (Sandbox Code Playgroud)
看起来像这样(缩短,翻译成英文):
Process name PID Modules
========================= ======== ============================================
explorer.exe 1104 ntdll.dll, kernel32.dll, KERNELBASE.dll,
ADVAPI32.dll, msvcrt.dll, sechost.dll,
RPCRT4.dll, GDI32.dll, USER32.dll, LPK.dll,
USP10.dll, SHLWAPI.dll, SHELL32.dll,
ole32.dll, OLEAUT32.dll, EXPLORERFRAME.dll,
DUser.dll, DUI70.dll, IMM32.dll, MSCTF.dll,
Run Code Online (Sandbox Code Playgroud)
问题是这对于 64 位进程来说效果不太好:
C:\>tasklist /fi "ImageName eq firefox.exe" /m
Process name PID Modules
========================= ======== ============================================
firefox.exe 4980 ntdll.dll, wow64.dll, wow64win.dll,
wow64cpu.dll
Run Code Online (Sandbox Code Playgroud)
你看到的并不完整,它看起来更像是这样的:

我的问题是:我可以将任务列表作为 32 位程序启动还是以其他方式确保它将返回正确的值?我需要从另一个程序(Java)调用任务列表并获取已加载的 DLL 文件的列表。我需要这个来确保我不会尝试加载 DLL 两次。