應用程式通常需要與系統上的其他進程互動。此類互動的一項重要資訊是目標進程是在 32 位元模式還是 64 位元模式下運行。這種區別會影響相容性、記憶體使用和其他因素。
為了以程式方式確定位數,C# 提供了一個簡單的方法:
if (IntPtr.Size == 4) { // 32-bit } else if (IntPtr.Size == 8) { // 64-bit } else { // The future is now! }
此方法檢查IntPtr的大小,表示運行系統上指針的大小:32位元為4位元組,32位元為8位元組64 位元。
要按名稱或 ID 查詢特定進程的位數,需要更高級的方法。使用 Process 類,您可以檢索有關目標進程的資訊:
Process process = Process.GetProcessById(processId); bool is32Bit = process.GetProcessBits() == ProcessBits.X32; bool is64Bit = process.GetProcessBits() == ProcessBits.X64;
此方法需要查詢作業系統,並且可能在舊系統上不可用。
對於支援32位元模擬(WOW64)的Windows系統,需要檢查模擬下是否有32位元進程運作 環境。以下程式碼示範了這一點:
bool isWin64Emulator = NativeMethods.IsWow64Process(process.Handle, out bool wow64Process);
這需要呼叫本機 IsWow64Process 函數來確定該進程是否在 64 位元 Windows 下作為 32 位元應用程式運行。
以上是如何以程式設計方式確定進程是 32 位元還是 64 位元?的詳細內容。更多資訊請關注PHP中文網其他相關文章!