不会吧,部分 API 其实也是读注册表的。
(部分历遍设备的 API 也是读注册表的)
读注册表就行, 建议你自行分析注册表,设备有分类的,如显卡为“display”,声音及多媒体为“media”等
(有 ? 和 !的设备也要分析下)
安装和删除也有专门的 API 如: UpdateDriverForPlugAndPlayDevices 等
多个相同硬件的, 也可以用 API 得到驱动名, 如:EnumDisplayDevices、waveOutGetNumDevs等(实际上也读注册表的)
检查设备性能用:GetDeviceCaps(我用 DELPHI 的,代码就不发了)
还有, 这几天我在想一个最好的方法来得到本机所有分区(如:C:\、D:\、E:\),因一直用 DELPHI, 所以对系统机制不是很明白,看到 MSDN 上用的全是一对以上的 API, 如 FindFirstVolume、FindVolumeClose 等,方法是很正规,但速度就......
(因一直用 delphi, 里面没上面的 API 声明)
delphi 内部好像这个是更好的方法,比上面的还要快:
function DirectoryExists(const Directory: string): Boolean;
var
Code: Integer;
begin
Code := GetFileAttributes(PChar(Directory));
Result := (Code <> -1) and (FILE_ATTRIBUTE_DIRECTORY and Code <> 0);
end;
到现在几天了,还是想不明白, 我到底要用正规的方法,还是更快的方法???