我想確定像CPU,RAM,硬盤,GPU等硬件信息。 我的應用程序是在C++中,但建立在Qt上。 如何獲取此信息? 謝謝。檢測C++應用程序中的硬件信息?
編輯:看起來像沒有平臺獨立的方式。所以,請你能列出顯眼的操作系統的代碼,如Windows,OSX & Ubuntu?
編輯:我正在談論的基本信息,如處理器速度,可用RAM,硬盤速度,GPU速度&內存。
我想確定像CPU,RAM,硬盤,GPU等硬件信息。 我的應用程序是在C++中,但建立在Qt上。 如何獲取此信息? 謝謝。檢測C++應用程序中的硬件信息?
編輯:看起來像沒有平臺獨立的方式。所以,請你能列出顯眼的操作系統的代碼,如Windows,OSX & Ubuntu?
編輯:我正在談論的基本信息,如處理器速度,可用RAM,硬盤速度,GPU速度&內存。
MS提供了一些功能來查找這些信息編程(包括WINDOWS.H):
BOOL WINAPI GetPhysicallyInstalledSystemMemory( _Out_ PULONGLONG TotalMemoryInKilobytes);
檢索有關RAM的信息,請參見documentation。
BOOL WINAPI GetDiskFreeSpaceEx(
_In_opt_ LPCTSTR lpDirectoryName,
_Out_opt_ PULARGE_INTEGER lpFreeBytesAvailable,
_Out_opt_ PULARGE_INTEGER lpTotalNumberOfBytes,
_Out_opt_ PULARGE_INTEGER lpTotalNumberOfFreeBytes
);
檢索有關磁盤捲上可用空間量的信息,請參閱documentation。
SYSTEM_INFO siSysInfo;
// Copy the hardware information to the SYSTEM_INFO structure.
GetSystemInfo(&siSysInfo);
包含有關當前計算機系統的信息。這包括處理器的體系結構和類型,系統中處理器的數量,頁面大小以及其他此類信息,請參閱此MS site。
您可以使用dmidecode
獲取有關您的硬件的各種信息。由於該軟件爲開源(GPL),因此您可以查看源代碼以瞭解其工作原理:
Dmidecode根據SMBIOS/DMI標準報告有關係統BIOS中所述的系統硬件信息(請參閱示例輸出)。這些信息通常包括系統製造商,型號名稱,序列號,BIOS版本,資產標籤以及根據製造商的不同利益和可靠性級別的許多其他細節。這通常包括CPU插座,擴展插槽(例如AGP,PCI,ISA)和存儲器模塊插槽以及I/O端口列表(例如串行,並行,USB)的使用狀態。
該工具還有windows port。
您可以在KDE源代碼中查看名爲「solid」的組件。 KDE基於Qt,我認爲你可以在Linux系統上重複使用這個開箱即用的軟件,也可以在其他平臺上使用。
總之,沒有平臺獨立的方式。 Linux,BSD和OSX之間可能有相似之處,但仍然不同,您不得不編寫特定的代碼。然後是Windows,這將與POSIX系統非常不同。如果您的目標是手機/平板電腦,則可能無法獲得所有硬件。 –
@Joachim Pileborg感謝您的評論。我已經更新了這個問題。 –
另外,您可能想要更具體一些,您確切需要哪些信息?供應商名稱,技術規格,運營狀態...? – KillianDS