診斷用戶機器上出現的問題的時候,機器的硬件以及OS信息是非常有幫助的。 檢查機器上各個硬件信 息的代碼工作量非常大, 這裡介紹一個快速便捷的方法: 利用windows自帶工具dxdiag.exe 來生成硬件 檢測的報告,然後讀取報告文件即可。
示例代碼如下:
STARTUPINFO si = {sizeof(si), 0};
PROCESS_INFORMATION pi = {0};
TCHAR szCmdLine[MAX_PATH] = _T("dxdiag.exe /whql:off /t dxdiag_output.txt");
if (CreateProcess(
NULL,
szCmdLine,
NULL,
NULL,
TRUE,
NULL,
NULL,
NULL,
&si,
&pi))
{
WaitForSingleObject (pi.hProcess, INFINITE); // 等待dxdiag.exe 執行結束
CloseHandle (pi.hProcess);
CloseHandle (pi.hThread);
//讀取dxdiag_output.txt 文件 ,獲取用戶機器的硬件/OS信息
HANDLE hFile = CreateFile(_T("dxdiag_output.txt"), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile != INVALID_HANDLE_VALUE)
{
DWORD dwBytesRead = 0;
char szBuffer[BUFFER_SIZE];
ReadFile(hFile, szBuffer, BUFFER_SIZE-1, &dwBytesRead, NULL);
...
}
CloseHandle(hFile);
}
}