Sen P/Invoke aracılığıyla IsWow64Process çağırmanız gerekir:
[DllImport("kernel32.dll", SetLastError = true, CallingConvention = CallingConvention.Winapi)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool IsWow64Process([In] IntPtr processHandle, [Out, MarshalAs(UnmanagedType.Bool)] out bool wow64Process);
Burada biraz daha kolay aramak yapmak için bir yardımcı var: Yanlış soruyu soruyorsunuz
public static bool Is64BitProcess(this Process process)
{
if (!Environment.Is64BitOperatingSystem)
return false;
bool isWow64Process;
if (!IsWow64Process(process.Handle, out isWow64Process))
throw new Win32Exception(Marshal.GetLastWin32Error());
return !isWow64Process;
}
. Gerçek soru şöyle olmalı: "ReadProcessMemory çağrısını nasıl mahvettim?" –
@Hans Bu başlık hakkında soru başlığı yanıtlandığı sürece umrumda değil. Listelediğim sorun sadece başlığı cevaplamanın bir yöntemidir. –
olası bir kopyası [Bir işlem nasıl bilinir 32-bit veya 64-bit programsal olarak] (http://stackoverflow.com/questions/1953377/how-to-know-a-process-is-32-bit-or -64-bit-programatik olarak) –