このコードは、Windows X64 で x32 dll を検出しません。
public int DllImageAddress(string dllname)
{
ProcessModuleCollection modules = MyProcess[0].Modules;
foreach (ProcessModule procmodule in modules)
{
if (procmodule.ModuleName.IndexOf(dllname) != -1)
{
return (int)procmodule.BaseAddress;
}
}
return -1;
}
Windows 7 x64 で x32 モジュールのリストを取得するには?
(例: Windows 7 X86 では DllImageAddress("Mydll.dll") は -1 ではなく、x64 では -1 を返します)