■ 64비트 프로세스 여부와 64비트 운영 체제 여부를 구하는 방법을 보여준다.
▶ Program.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
using System.Diagnostics; using System.Runtime.InteropServices; namespace TestProject; /// <summary> /// 프로그램 /// </summary> class Program { //////////////////////////////////////////////////////////////////////////////////////////////////// Import ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Private #region WOW 64비트 프로세스 여부 구하기 - IsWow64Process(processHandle, isWOW64Process) /// <summary> /// WOW 64비트 프로세스 여부 구하기 /// </summary> /// <param name="processHandle">프로세스 핸들</param> /// <param name="isWOW64Process">WOW 64비트 프로세스 여부</param> /// <returns>처리 결과</returns> [DllImport("kernel32", SetLastError = true, CallingConvention = CallingConvention.Winapi)] [return: MarshalAs(UnmanagedType.Bool)] private static extern bool IsWow64Process([In] IntPtr processHandle, [Out] out bool isWOW64Process); #endregion //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Private #region 64비트 버전 여부 구하기 - Is64BitVersion() /// <summary> /// 64비트 버전 여부 구하기 /// </summary> /// <returns>64비트 버전 여부</returns> private static bool Is64BitVersion() { if((Environment.OSVersion.Version.Major == 5 && Environment.OSVersion.Version.Minor >= 1) || Environment.OSVersion.Version.Major >= 6) { using(Process process = Process.GetCurrentProcess()) { bool result; if(!IsWow64Process(process.Handle, out result)) { return false; } return result; } } else { return false; } } #endregion #region 프로그램 시작하기 - Main() /// <summary> /// 프로그램 시작하기 /// </summary> private static void Main() { bool is64BitProcess = (IntPtr.Size == 8); bool is64BitOperatingSystem = is64BitProcess || Is64BitVersion(); Console.WriteLine($"64비트 프로세스 여부 : {is64BitProcess }"); Console.WriteLine($"64비트 운영 체제 여부 : {is64BitOperatingSystem}"); } #endregion } |