summaryrefslogtreecommitdiffstats
path: root/libraries/systeminfo/src/sys_win32.cpp
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2017-01-01 19:59:46 +0100
committerPetr Mrázek <peterix@gmail.com>2017-01-01 20:04:08 +0100
commita666dc0a1afa69b5b42aa3a487c8fa971c01cde1 (patch)
treee226954e1af8f1dce0f9e73898331aef2481503b /libraries/systeminfo/src/sys_win32.cpp
parent722896d41f15a8bc78a864f7adcfd0527648073c (diff)
downloadMultiMC-a666dc0a1afa69b5b42aa3a487c8fa971c01cde1.tar
MultiMC-a666dc0a1afa69b5b42aa3a487c8fa971c01cde1.tar.gz
MultiMC-a666dc0a1afa69b5b42aa3a487c8fa971c01cde1.tar.lz
MultiMC-a666dc0a1afa69b5b42aa3a487c8fa971c01cde1.tar.xz
MultiMC-a666dc0a1afa69b5b42aa3a487c8fa971c01cde1.zip
NOISSUE fix up translation selection in settings and add OS/sys arch reporting
Diffstat (limited to 'libraries/systeminfo/src/sys_win32.cpp')
-rw-r--r--libraries/systeminfo/src/sys_win32.cpp46
1 files changed, 46 insertions, 0 deletions
diff --git a/libraries/systeminfo/src/sys_win32.cpp b/libraries/systeminfo/src/sys_win32.cpp
new file mode 100644
index 00000000..502b980d
--- /dev/null
+++ b/libraries/systeminfo/src/sys_win32.cpp
@@ -0,0 +1,46 @@
+#include "sys.h"
+
+#include <windows.h>
+
+Sys::KernelInfo Sys::getKernelInfo()
+{
+ Sys::KernelInfo out;
+ out.kernelName = "Windows";
+ OSVERSIONINFOW osvi;
+ ZeroMemory(&osvi, sizeof(OSVERSIONINFOW));
+ osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOW);
+ GetVersionExW(&osvi);
+ out.kernelVersion = QString("%1.%2").arg(osvi.dwMajorVersion).arg(osvi.dwMinorVersion);
+ return out;
+}
+
+uint64_t Sys::getSystemRam()
+{
+ MEMORYSTATUSEX status;
+ status.dwLength = sizeof(status);
+ GlobalMemoryStatusEx( &status );
+ // bytes
+ return (uint64_t)status.ullTotalPhys;
+}
+
+bool Sys::isSystem64bit()
+{
+#if defined(_WIN64)
+ return true;
+#elif defined(_WIN32)
+ BOOL f64 = false;
+ return IsWow64Process(GetCurrentProcess(), &f64) && f64;
+#else
+ // it's some other kind of system...
+ return false;
+#endif
+}
+
+bool Sys::isCPU64bit()
+{
+ SYSTEM_INFO info;
+ ZeroMemory(&info, sizeof(SYSTEM_INFO));
+ GetNativeSystemInfo(&info);
+ auto arch = info.wProcessorArchitecture;
+ return arch == PROCESSOR_ARCHITECTURE_AMD64 || arch == PROCESSOR_ARCHITECTURE_IA64;
+}