このコードは、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 を返します)