[Windows编程] 利用dxdiag获取用户机器硬件及OS信息

简介:
诊断用户机器上出现的问题的时候,机器的硬件以及OS信息是非常有帮助的。 检查机器上各个硬件信息的代码工作量非常大, 这里介绍一个快速便捷的方法: 利用windows自带工具dxdiag.exe 来生成硬件检测的报告,然后读取报告文件即可。 示例代码如下:
view plaincopy to clipboardprint?
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);   
 }   
}


 本文转自 陈本峰 51CTO博客,原文链接:http://blog.51cto.com/wingeek/274057,如需转载请自行联系原作者

相关文章
|
8天前
|
安全 Linux 网络安全
nmap 是一款强大的开源网络扫描工具,能检测目标的开放端口、服务类型和操作系统等信息
nmap 是一款强大的开源网络扫描工具,能检测目标的开放端口、服务类型和操作系统等信息。本文分三部分介绍 nmap:基本原理、使用方法及技巧、实际应用及案例分析。通过学习 nmap,您可以更好地了解网络拓扑和安全状况,提升网络安全管理和渗透测试能力。
45 5
|
1月前
|
IDE 开发工具 Android开发
探索移动应用开发之旅:理解移动操作系统与编程实践
【9月更文挑战第36天】在数字化时代的浪潮中,移动应用成为连接用户与数字世界的桥梁。本文将深入探讨移动应用开发的精髓,从移动操作系统的工作原理到实际编程实践,旨在为读者提供一条清晰的道路,以理解和掌握移动应用的开发过程。我们将通过具体示例,揭示如何在不断变化的技术环境中保持应用的性能、安全性和用户体验。无论你是初学者还是有经验的开发者,本文都将为你打开一扇窗,让你一窥移动应用开发的精彩世界。
|
1月前
|
安全 测试技术 数据库
Python编程--sys模块及OS模块简单用例
Python编程--sys模块及OS模块简单用例
|
2月前
|
网络协议 API Windows
MASM32编程调用 API函数RtlIpv6AddressToString,windows 10 容易,Windows 7 折腾
MASM32编程调用 API函数RtlIpv6AddressToString,windows 10 容易,Windows 7 折腾
|
2月前
|
Windows
[原创]用MASM32编程获取windows类型
[原创]用MASM32编程获取windows类型
|
2月前
|
JavaScript 前端开发 API
MASM32编程通过WMI获取Windows计划任务
MASM32编程通过WMI获取Windows计划任务
|
1月前
|
算法 调度 UED
探索操作系统中的多线程编程
【8月更文挑战第78天】在数字世界的复杂迷宫中,操作系统扮演着至关重要的角色。本文旨在揭开操作系统中多线程编程的神秘面纱,引导读者理解其概念、实现及应用。通过深入浅出的方式,我们将探讨如何在程序设计中运用多线程,以及这一技术如何优化软件性能和提升用户体验。文章将结合具体代码示例,展示多线程在实际应用中的魔力。无论你是编程新手还是资深开发者,这篇文章都将为你提供新的视角和思考路径。
|
2月前
|
人工智能 运维 安全
专访浪潮信息:AI 原生时代,浪潮信息引领服务器操作系统创新 全面贡献龙蜥社区
分享了关于 AI 原生化趋势下服务器操作系统进化的思考,以及浪潮信息在龙蜥社区开源贡献的思路、成果与未来技术发展规划。
专访浪潮信息:AI 原生时代,浪潮信息引领服务器操作系统创新 全面贡献龙蜥社区
|
2月前
|
API Windows
MASM32编程获取Windows当前桌面主题名
MASM32编程获取Windows当前桌面主题名
|
2月前
|
人工智能 物联网 5G
未来编程之钥:移动应用开发与操作系统的融合趋势
本文将探索移动应用开发和移动操作系统之间的紧密联系,并分析它们如何共同塑造了我们的数字生活。我们将从移动应用的开发环境谈起,探讨不同操作系统对开发者的影响,以及这些系统是如何促进创新和提升用户体验的。文章还将展望移动技术的未来,包括人工智能、物联网和5G网络如何进一步整合进移动应用生态中。
下一篇
无影云桌面