내 프로세서가 C 또는 32 비트인지 알아 보려면 어떻게해야합니까?내 프로세서가 C 또는 32 비트인지 알아 보는 방법은 무엇입니까?
답변
당신은 System.Management.ManagementObject
를 사용하여 WMI 클래스 Win32_Processor
을 조회 할 수 있습니다
ManagementObject mo;
mo = new ManagementObject("Win32_Processor.DeviceID='CPU0'");
ushort i = (ushort)mo["Architecture"];
switch (i)
{
case 0:
return "32 Bit";
break;
case 9:
return "64 Bit";
break;
}
는 다른 프로세서 코드에 대한
the MSDN Library description를 살펴 보자.
이 문제는 프로그램을 실행하는 사용자에게 WMI보기 권한이 필요하다는 점입니다. .NET 4.0 이상을 사용하는 사람들을위한
기본적으로 C#으로 확인하는 가장 쉬운 방법은 다음과 같습니다
var size = IntPtr.Size;
크기는 동일합니다 중 4 또는 8 그러나 더 큰 문제는 이유를 알아야 할입니까?
현재 프로세서가 어떤 종류의 프로세서인지 알려주지 않습니다. – Guffa
현재 응용 프로그램이 32 비트 응용 프로그램 또는 64 비트 응용 프로그램으로 실행되고 있는지 확인하려면 IntPtr.Size
속성 만 사용하십시오.
int bits = IntPtr.Size * 8;
실제 프로세서에 대한 정보를 찾으려면 더 힘듭니다. 일부 정보를 가져 오는 Here is a library이지만 페이지는 특정 정보를 얻는 지 여부를 알려주지 않습니다. get some information from the registry 수 있습니다. 얼마나 많은 정보가 있는지 확인하지 않았습니다.
또한 P/Invoke를 사용하여 GetNativeSystemInfo을 호출하고 SystemInfo 구조를 얻을 수 있습니다.
isWow64 = false;
if (System.Environment.OSVersion.Version.Major >= 5 &&
System.Environment.OSVersion.Version.Minor >= 1)
{
var processHandle = GetProcessHandle((uint)
System.Diagnostics.Process.GetCurrentProcess().Id);
bool retVal;
if (!NativeMethods.IsWow64Process(processHandle, out retVal))
{
throw (new Win32Exception());
}
isWow64 = retVal;
}
대체 솔루션 (그러나 권장하지 않음) :
public bool Is64bitOS
{
get
{
return Environment.GetEnvironmentVariable("ProgramFiles(x86)")
!= null;
}
}
public string ProgramFilesX86
{
get
{
string programFiles =
Environment.GetEnvironmentVariable("ProgramFiles(x86)");
if (programFiles == null)
{
programFiles = Environment.GetEnvironmentVariable(
"ProgramFiles");
}
return programFiles;
}
}
를 조회 Win32_Processor 클래스를 WMI
(비아 :
또 다른 해결책은 다음과 같습니다 more) 레지스트리 정보 :
HKLM\HARDWARE\DESCRIPTION\System\CentralProcessor
각 하위 키에는 0, 1, 2 등의 하위 키가 하나 이상 있습니다 (각 코어에 하나씩). 각 하위 키에는 프로세서 제품군 및 모델을 포함하여 x86 또는 텍스트의 일부 64 비트를 포함하는 식별자가 포함되어 있습니다.
이것은 올바르지 만 Windows 시스템에서만 가능합니다. 나는 이것이 Silverlight, Phone 7 어플리케이션, 또는 모노/리눅스에서 실행되는 어플리케이션에서 작동하지 않을 것이라고 생각합니다. – matt
[DllImport("kernel32.dll", SetLastError = true, CallingConvention = CallingConvention.Winapi)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool IsWow64Process([In] IntPtr hProcess, [Out] out bool lpSystemInfo);
public static bool Is64Bit()
{
bool retVal;
IsWow64Process(Process.GetCurrentProcess().Handle, out retVal);
return retVal;
}
환경에 문제가 있습니까? 64BitOperatingSystem? –
는 내장 재산 System.Environment.Is64BitOperatingSystem
당신에게이 정보를 제공 할 수있다.
- 1. 실행 파일 (또는 라이브러리)이 32 또는 64 비트인지 확인
- 2. 아키텍처가 32 비트 또는 64 비트인지 확인하는 우아하고 안전한 방법
- 3. ASP.NET에서 어떤 프로세스가 파일을 사용하고 있는지 알아 보는 방법은 무엇입니까?
- 4. 코코아 응용 프로그램이 32 비트 또는 64 비트인지 확인하는 방법은 무엇입니까?
- 5. Tomcat이 윈도우 서버에서 32 비트 또는 64 비트인지 확인하는 방법은 무엇입니까?
- 6. 뷰에서 어떤 라디오 버튼을 선택했는지 알아 보는 방법은 무엇입니까?
- 7. 특정 디스크의 형식을 알아 보는 방법 (FAT32 또는 NTFS)
- 8. 설치가 완료되면 알아 보는 방법
- 9. iPhone/iPod Phone을 사용할 수 있는지 알아 보는 방법은 무엇입니까?
- 10. .jar 파일의 어떤 클래스가 참조되는지 알아 보는 방법은 무엇입니까?
- 11. 어떤 프로세스가 대부분의 메모리를 얼마나 소비하는지 알아 보는 방법은 무엇입니까?
- 12. emacs 서버가 실행 중인지 알아 보는 방법
- 13. 누가 애플리케이션을 해지했는지 알아 보는 방법? 스케줄러 또는 사용자 수동으로?
- 14. RequestWrapper 오브젝트에서 요청이 전달되는시기를 알아 보는 방법
- 15. StatusBar 크기가 변경된시기를 알아 보는 방법 (iPhone)
- 16. 보안 또는 침투 테스트 적용 범위를 알아 보는 방법
- 17. 모델이 Rake에서 사용되는지 알아 보는 방법?
- 18. iOS : 메일 계정이 있는지 알아 보는 방법
- 19. 데이터가 URL에 있는지 알아 보는 방법
- 20. C# 원격 객체가 인터페이스를 구현하는지 알아 보는 방법
- 21. 관계에있는 객체가 데이터베이스에 있는지 알아 보는 방법
- 22. php에서 링크가 클릭 된시기를 알아 보는 방법
- 23. 어떤 양식이 상단에 있는지 알아 보는 방법?
- 24. 전화가 잠금 상태인지 여부를 알아 보는 방법
- 25. 토큰화할 마지막 이유가 무엇인지 알아 보는 방법
- 26. 서블릿에서 파일 경로를 알아 보는 방법
- 27. C++에서 해시 항목을 보는 방법은 무엇입니까?
- 28. C++ 매크로의 내용을 보는 방법은 무엇입니까?
- 29. Eclipse CDT에서 정적 또는 전역 변수를 보는 방법은 무엇입니까?
- 30. 설치하려는 응용 프로그램이 32 비트 또는 64 비트인지 여부를 어떻게 결정합니까?
관리자 권한없이 Win32_Processor 클래스 (PowerShell)를 쿼리 할 수 있습니다. 또한 아키텍처 6 (Itanium)도 64 비트이기 때문에 아키텍처 대신 AddressWidth/DataWidth를 쿼리 할 수 있습니다. x86 및 x86_64 만 있다고 가정하지 마십시오. – Joey