Wie kann ich feststellen, ob ein anderer Prozess 64bit ist?

8

Ich habe einen Prozess für eine laufende Anwendung.

Wie kann ich sagen (ohne p / Aufruf, vorzugsweise), wenn dieser Prozess 64bit ist?

    
Will 01.04.2011, 19:40
quelle

4 Antworten

4

Sie müssen PInvoke IsWow64Process verwenden.

    
dalle 01.04.2011 19:43
quelle
4

Ich glaube nicht, dass es einen 100% definitiven Weg gibt, ohne PInvoke zu wissen.

Aber ein Punkt, der vielleicht funktioniert, ist es, die Menge der geladenen Module zu überprüfen ( Process.Modules ). Wenn die primären Module (user32, kernel32, etc ...) aus dem Wow64-Verzeichnis kommen und Sie eine 64-Bit-Maschine betreiben, dann besteht eine gute Chance, dass es sich um einen 32-Bit-Prozess handelt. Wenn sie nicht aus dem Wow64-Verzeichnis stammen und es sich um eine 64-Bit-Maschine handelt, handelt es sich wahrscheinlich um einen 64-Bit-Prozess.

Wieder nicht definitiv, aber ein guter Schätzwert.

    
JaredPar 01.04.2011 19:44
quelle
0

Wie von anderen erwähnt, können Sie IsWow64Process verwenden, das einfach implementiert werden kann hier .

    
AzzamAziz 13.08.2016 04:47
quelle
-4

Wenn ein Prozess auf einem 64-Bit-Betriebssystem ausgeführt wird, handelt es sich einfach um einen 64-Bit-Prozess.

Es ist möglich, dass Code, der ursprünglich für 32-Bit-Systeme geschrieben wurde, auf 64-Bit-Versionen läuft, da er innerhalb der Speicherbeschränkungen der 64-Bit-Umgebung arbeiten kann. Sie ist jedoch nicht mehr an diese Beschränkungen gebunden, unabhängig davon, ob sie diese Tatsache nutzen oder nicht. Als solches gibt es keinen "32-Bit-Prozess", wenn es auf einer 64-Bit-Maschine läuft.

Denken Sie daran wie ein Hund, der trainiert wurde, in einem bestimmten Bereich zu bleiben, indem er unsichtbares Fechten benutzt. Wenn das eingezäunte Gebiet später erweitert würde, würden Sie feststellen, dass einige schlauere Hunde sofort beginnen würden, das neue Gebiet zu nutzen. Auch wenn andere Hunde sich der Veränderung nicht bewusst sind und weiterhin innerhalb ihrer wahrgenommenen Grenzen operieren, bedeutet dies nicht, dass ihre Grenzen anders wären als die der klügeren.

    
Justin Buser 19.10.2012 22:38
quelle

Tags und Links