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.
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! }
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.
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;
Cette méthode nécessite d'interroger le système d'exploitation et peut ne pas être disponible sur les anciens systèmes.
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);
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!