Maison > développement back-end > C++ > Comment puis-je déterminer par programme si un processus est 32 bits ou 64 bits ?

Comment puis-je déterminer par programme si un processus est 32 bits ou 64 bits ?

Linda Hamilton
Libérer: 2025-01-05 07:43:39
original
289 Les gens l'ont consulté

How Can I Programmatically Determine if a Process is 32-bit or 64-bit?

Détermination du nombre de bits d'un processus par programmation

Les applications doivent souvent interagir avec d'autres processus du système. Une information cruciale pour de telles interactions est de savoir si le processus cible s'exécute en mode 32 bits ou 64 bits. Cette distinction peut affecter la compatibilité, l'utilisation de la mémoire et d'autres facteurs.

Approche déterministe

Pour déterminer le nombre de bits par programme, C# propose une méthode simple :

if (IntPtr.Size == 4)
{
    // 32-bit
}
else if (IntPtr.Size == 8)
{
    // 64-bit
}
else
{
    // The future is now!
}
Copier après la connexion

Cette approche vérifie la taille de IntPtr, qui indique la taille des pointeurs sur le système en cours d'exécution : 4 octets pour 32 bits et 8 octets pour 64 bits.

Analyse spécifique au processus

Pour interroger un processus spécifique par son nom ou son identifiant pour son nombre de bits, une approche plus avancée est nécessaire. À l'aide de la classe Process, vous pouvez récupérer des informations sur le processus cible :

Process process = Process.GetProcessById(processId);
bool is32Bit = process.GetProcessBits() == ProcessBits.X32;
bool is64Bit = process.GetProcessBits() == ProcessBits.X64;
Copier après la connexion

Cette méthode nécessite d'interroger le système d'exploitation et peut ne pas être disponible sur les anciens systèmes.

Détection WOW64

Pour les systèmes Windows prenant en charge l'émulation 32 bits (WOW64), il est nécessaire de vérifier si un processus 32 bits est en cours d'exécution dans l'environnement d'émulation. Le code suivant le démontre :

bool isWin64Emulator = NativeMethods.IsWow64Process(process.Handle, out bool wow64Process);
Copier après la connexion

Cela nécessite d'appeler la fonction native IsWow64Process pour déterminer si le processus s'exécute en tant qu'application 32 bits sous Windows 64 bits.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal