我有正在运行的应用程序的Process。
如何判断(最好没有p /调用)该进程是否为64位?
答案 0 :(得分:4)
您需要使用PInvoke IsWow64Process。
答案 1 :(得分:4)
如果没有PInvoke,我认为没有100%明确的方法可以知道。
但是可以使用的一个项目是检查已加载模块的集合(Process.Modules
)。如果主要模块(user32,kernel32等等)来自Wow64目录并且你正在运行64位机器,那么它很可能是32位进程。如果它们不是来自Wow64目录并且它是64位机器,那么它可能是64位进程。
再次不是决定性的,而是一个很好的估计。
答案 2 :(得分:0)
正如其他人所说,您可以使用IsWow64Process,这很容易实现here。
答案 3 :(得分:-4)
很容易,如果进程在64位操作系统上运行,那么它就是64位进程。
最初为32位系统编写的代码可能在64位版本上运行,因为它可以在64位环境的内存限制内运行。但是,它不再受这些限制的约束,无论它是否旨在利用这一事实。因此,如果它在64位位机器上运行,则不会出现“32位进程”。
将它想象成一只被训练过使用隐形围栏保持在某个区域内的狗。如果围栏区域稍后扩展,您会发现一些聪明的狗会立即开始使用新区域。即使其他狗可能没有意识到这种变化,并继续在他们认为的界限内运作,但这并不意味着他们的局限性会与智慧型的局限性不同。