在程序中如何得到以下信息

whitelion 2002-03-06 12:04:36
是否要通过查注册表
我的电脑->右键菜单->属性->设备列表(winnt与98不一样)
我想知道如何知道这些硬件信息列表
...全文
48 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
40Star 2002-03-06
  • 打赏
  • 举报
回复
VB中的应用程序向导会生成一个“系统信息“
里面会有东西对你有帮助
可以看看
  • 打赏
  • 举报
回复
The following code fragment demonstrates how to display a list of all installed hardware devices:

#include <stdio.h>
#include <windows.h>
#include <setupapi.h>
#include <devguid.h>
#include <regstr.h>

int main( int argc, char *argv[ ], char *envp[ ] )
{
HDEVINFO hDevInfo;
SP_DEVINFO_DATA DeviceInfoData;
DWORD i;

// Create a HDEVINFO with all present devices.
hDevInfo = SetupDiGetClassDevs(NULL,
0, // Enumerator
0,
DIGCF_PRESENT | DIGCF_ALLCLASSES );

if (hDevInfo == INVALID_HANDLE_VALUE)
{
// Insert error handling here.
return 1;
}

// Enumerate through all devices in Set.

DeviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA);
for (i=0;SetupDiEnumDeviceInfo(hDevInfo,i,
&DeviceInfoData);i++)
{
DWORD DataT;
LPTSTR buffer = NULL;
DWORD buffersize = 0;

//
// Call function with null to begin with,
// then use the returned buffer size
// to Alloc the buffer. Keep calling until
// success or an unknown failure.
//
while (!SetupDiGetDeviceRegistryProperty(
hDevInfo,
&DeviceInfoData,
SPDRP_DEVICEDESC,
&DataT,
(PBYTE)buffer,
buffersize,
&buffersize))
{
if (GetLastError() ==
ERROR_INSUFFICIENT_BUFFER)
{
// Change the buffer size.
if (buffer) LocalFree(buffer);
buffer = LocalAlloc(LPTR,buffersize);
}
else
{
// Insert error handling here.
break;
}
}

printf("Result:[%s]\n",buffer);

if (buffer) LocalFree(buffer);
}


if ( GetLastError()!=NO_ERROR &&
GetLastError()!=ERROR_NO_MORE_ITEMS )
{
// Insert error handling here.
return 1;
}

// Cleanup
SetupDiDestroyDeviceInfoList(hDevInfo);

return 0;
}
The following code fragment demonstrates how to retreive a set of all display adapters on a system.
hDevInfo = SetupDiGetClassDevs(
(LPGUID) &GUID_DEVCLASS_DISPLAY,
0,
0,
DIGCF_PRESENT);
The following code fragment demonstrates how to retrieve a set of all devices on the Peripheral Component Interconnect (PCI) bus.
hDevInfo = SetupDiGetClassDevs(NULL,
REGSTR_KEY_PCIENUM, // Enumerator
0,
DIGCF_PRESENT | DIGCF_ALLCLASSES );
Windows API functions that require a Device Instance Handle, such as the Config Manager set of API functions, can use the DevInst value in the structure SP_DEVINFO_DATA returned by the SetupDiEnumDeviceInfo function.



REFERENCES
SetupDi API calls are documented in the Windows 2000 Device Development Kit (DDK).

不过 ,您需要 DDK..
applies to:


Microsoft Windows 2000 Driver Development Kit (DDK)
Microsoft Windows NT 4.0 Driver Development Kit (DDK)
whitelion 2002-03-06
  • 打赏
  • 举报
回复
没找到啊
CCLIS 2002-03-06
  • 打赏
  • 举报
回复
查下MSDN中的例子。有相应的程序。
whitelion 2002-03-06
  • 打赏
  • 举报
回复
还有别的方法吗
Behard 2002-03-06
  • 打赏
  • 举报
回复
学习

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧