#include "user32.as"
#uselib "kernel32.dll"
#cfunc OpenProcess "OpenProcess" int, int, int
#func CloseHandle "CloseHandle" int
#uselib "psapi.dll"
#func EnumProcesses "EnumProcesses" int, int, int
#func EnumProcessModules "EnumProcessModules" int, int, int, int
#func GetModuleBaseName "GetModuleBaseNameA" int, int, int, int
dim pid, 256
dim modules, 256
sdim pname
sdim txt, 3200
width 300,280
EnumProcesses varptr(pid), 1024, varptr(size)
repeat size/4
hProcess = OpenProcess(0x0400 | 0x0008 | 0x0010 , 0, pid(cnt))
if hProcess {
EnumProcessModules hProcess, varptr(modules), 1024, varptr(size)
if stat {
GetModuleBaseName hProcess, 0, varptr(pname), 64
if (pname == "NOTEPAD.EXE") {
txt += ""+pid(cnt)+" - "+pname+"\n"
}
CloseHandle hProcess
}
}
loop
mesbox txt, 640, 480
メモ帳を起動してたらリストにメモ帳のプロセスは表示されるのですが、
NOTEPAD.EXEに使用されてるほかのDLL「モジュール」を取得するにはどうしたらいいでしょうか?
CreateToolhelp32SnapshotとModule32Firstなどはできるだけ使いたくないです。
宜しくお願いします。