2013-08-20 38 views
4

我想確定像CPU,RAM,硬盤,GPU等硬件信息。 我的應用程序是在C++中,但建立在Qt上。 如何獲取此信息? 謝謝。檢測C++應用程序中的硬件信息?

編輯:看起來像沒有平臺獨立的方式。所以,請你能列出顯眼的操作系統的代碼,如Windows,OSX & Ubuntu?

編輯:我正在談論的基本信息,如處理器速度,可用RAM,硬盤速度,GPU速度&內存。

+5

總之,沒有平臺獨立的方式。 Linux,BSD和OSX之間可能有相似之處,但仍然不同,您不得不編寫特定的代碼。然後是Windows,這將與POSIX系統非常不同。如果您的目標是手機/平板電腦,則可能無法獲得所有硬件。 –

+0

@Joachim Pileborg感謝您的評論。我已經更新了這個問題。 –

+0

另外,您可能想要更具體一些,您確切需要哪些信息?供應商名稱,技術規格,運營狀態...? – KillianDS

回答

2

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

0

您可以使用dmidecode獲取有關您的硬件的各種信息。由於該軟件爲開源(GPL),因此您可以查看源代碼以瞭解其工作原理:

Dmidecode根據SMBIOS/DMI標準報告有關係統BIOS中所述的系統硬件信息(請參閱示例輸出)。這些信息通常包括系統製造商,型號名稱,序列號,BIOS版本,資產標籤以及根據製造商的不同利益和可靠性級別的許多其他細節。這通常包括CPU插座,擴展插槽(例如AGP,PCI,ISA)和存儲器模塊插槽以及I/O端口列表(例如串行,並行,USB)的使用狀態。

該工具還有windows port

0

您可以在KDE源代碼中查看名爲「solid」的組件。 KDE基於Qt,我認爲你可以在Linux系統上重複使用這個開箱即用的軟件,也可以在其他平臺上使用。