微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何确定一个System.Diagnostics.Process是32位还是64位?

我试过了:

process.MainModule.FileName.Contains("x86")

但它引发了一个x64进程的exception:

Win32Exception:只有ReadProcessMemory或WriteProcessMemory请求的一部分完成

C#获取networking上的图像的宽度/高度,而无需下载整个文件

UWP的TitleBar后退button

如何切换到具体的文件处理

在.NET中是否有一个文件扩展名分隔符字符常量?

http.sys&响应时间logging

如何创build从C#到C + +委托,将IEnumerable作为参数与SWIG的通过?

如果在3个否则可选的正则expression式expression式中至less有1个字符匹配,则需要“不匹配”

当父窗口最小化时如何防止子窗口的最小化

如何在.NET中实现精细的字体缩放?

重命名正在运行的程序 – 危险

您需要通过P / Invoke调用IsWow64Process :

[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 );

这是一个帮助,使它更容易调用

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; }

WMI的Win32_Process或System.Diagnostics.Process都不提供任何显式属性

如何迭代通过加载的模块( Process.modulees ),一个32位的进程将加载%WinDir%syswow64kernel32.dll而一个64位进程将从%WinDir%system32kernel32.dll加载它(这是一个DLL, 每个 Windows进程加载)。

NB。 当然,这个测试在x86操作系统实例上会失败。

Environment.Is64BitProcess可能是你在找什么。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐