📄 怎样获得机器的各种硬件信息 (2000年8月22日).txt
字号:
怎样获得机器的各种硬件信息 (2000年8月22日)
本站更新 分类: 作者:大富翁论坛 推荐: 阅读次数:956
(http://www.codesky.net)
--------------------------------------------------------------------------------
怎样获得机器的各种硬件信息?(200分)(200分)
问题的分类是:系统相关 , 分坛主: cAkk, 分坛主: lhz
来自:hanson 时间:00-6-5 15:26:00 ID:260516
我想写个程序想直接读取硬件得到机器的各种硬件信息,而不是访问Windows的
注册表得到信息?
怎样下手啊?请各位大侠指点?就是类似那个有名的HWINFO的东东!
谢谢各位大侠啦!
--------------------------------------------------------------------------------
来自:程云 时间:00-6-5 16:59:48 ID:260557
我不久前也看到过这个(HWINFO),现在不记得了。
回去找再说。
--------------------------------------------------------------------------------
来自:LawrenceZhang 时间:00-6-5 17:58:13 ID:260577
bbwinfo
--------------------------------------------------------------------------------
来自:LawrenceZhang 时间:00-6-5 18:00:54 ID:260579
e-mail to you
--------------------------------------------------------------------------------
来自:sonicyouth 时间:00-6-5 18:19:01 ID:260589
GetSystemInfo可以得到一些关于cpu和内存管理方面的信息
// 如果注册表里面有你想要的东西的话,为何不用它???
--------------------------------------------------------------------------------
来自:Nutty 时间:00-6-5 19:08:47 ID:260614
to lawrenceZhang:
方便的话,请大侠也给我一份! 谢谢了!
please mailto nuttymail@163.net
--------------------------------------------------------------------------------
来自:黄耀彰 时间:00-6-6 01:16:03 ID:260798
到WinApi去找一找,多得很。
GetDiskFreeSpace() 检测磁盘容量
GetDriveType() 检测驱动器类型
GetSystemInfo() 系统信息。
GetfileVersionInfo 版本信息。
GetSystemMetrics() 显示器信息。(分辨率)
用GlobaMemoryStatus() 更能得到一个系统资源报告。
--------------------------------------------------------------------------------
来自:OpuBF 时间:00-6-6 01:36:09 ID:260804
真的很多呀……
GetLogicalDriveStrings
GetDiskFreeSpace
…………
--------------------------------------------------------------------------------
来自:hanson 时间:00-6-6 09:08:52 ID:260912
非常感谢各位大侠的鼎立支持!
LawrenceZhang的控件很不错,大家可以试试,不过基本都是系统信息!
sonicyouth,黄耀彰方法也不错!
非常感谢!
我大概讲述的不太明白,我是想得到很多硬件的信息:如CPU的种类及它的特性,
主板的特性,总线特性,软驱,硬盘,CDRom,显示卡,声卡,modem等设备的
信息及特性,可能还需要Test它们,我感到无法下手,请各位大侠指条生路!
多谢!
--------------------------------------------------------------------------------
来自:王亮 时间:00-6-6 16:12:06 ID:261184
几个基本的例子,由此可演化得到许多硬件信息。
结果放在Memo1中。
procedure TForm1.Button1Click(Sender: TObject);
var
systeminfo: SYSTEM_INFO;
memory: MEMORYSTATUS;
sector,byte,cluster,free: DWORD;
freespace,totalspace: longint;
CDtype: UINT;
name: CHAR;
drvname: string;
volname,filesysname: PCHAR;
sno,maxl,fileflag: DWORD;
begin
Memo1.Lines.Clear();
//获得CPU型号
GetSystemInfo(systeminfo);
Memo1.Lines.Add('您的CPU类型是:' + inttostr(systeminfo.dwProcessorType));
//获得内存状态
memory.dwLength := sizeof(memory); //初始化
GlobalMemoryStatus(memory);
Memo1.Lines.Add('您的物理内存是(' + inttostr(integer(memory.dwTotalPhys div 1024 div 1024)) + 'MB)。');
Memo1.Lines.Add('其中可用内存是(' + inttostr(integer(memory.dwTotalPhys div 1024)) + 'KB)。');
//获得C盘可用空间
GetDiskFreeSpace('C:', LPDWORD(@sector)^, LPDWORD(@byte)^, LPDWORD(@free)^, LPDWORD(@cluster)^); //获得返回参数
totalspace := cluster * byte * sector div 1024 div 1024; //计算总容量
freespace := free * byte * sector div 1024 div 1024; //计算可用空间
Memo1.Lines.Add('C盘总空间(' + inttostr(integer(totalspace)) + 'MB)。');
Memo1.Lines.Add('C盘可用空间(' + inttostr(integer(freespace)) + 'MB)。');
//检测CD-ROM,是否有光盘
GetMem(volname, 255);
GetMem(filesysname, 100);
for name :='C' to 'Z' do//循环检测A~Z
begin
drvname := name + ':';
CDtype := GetDriveType(PCHAR(@drvname[1])); //获得磁盘类型
if (CDtype = DRIVE_CDROM) then
begin
Memo1.Lines.Add('您的光驱盘符为[' + drvname + ']');
volname^ := Chr(0);
filesysname^ := Chr(0);
if ( not (GetVolumeInformation(PCHAR(@drvname[1]), volname, 250, LPDWORD(@sno), LPDWORD(@maxl)^, LPDWORD(@fileflag)^, filesysname,100))) then
Memo1.Lines.Add(drvname + '驱中没有发现光盘') //如果返回值为假
else //如果返回值为真
begin
Memo1.Lines.Add (drvname + '驱中光盘卷标为: [' + String(volname) + ']');
Memo1.Lines.Add (drvname + '驱中光盘序号为: [' + inttostr(sno) + ']');
end;
end;
end;
FreeMem(volname);
FreeMem(filesysname)
end;
完整的例子请到: http://foxhead.easthome.net/DataInfo/RichDelphi/Hardtest.zip取
--------------------------------------------------------------------------------
来自:hanson 时间:00-6-16 10:47:16 ID:266153
谢谢各位大侠!
请继续努力呀!
类似的Cpu各种特性,主板的各种特性怎样得到?
多帮忙啊!!!
--------------------------------------------------------------------------------
来自:R_Baggio 时间:00-6-16 11:09:28 ID:266174
Oh, I Come late!
--------------------------------------------------------------------------------
来自:hanson 时间:00-6-20 11:07:12 ID:268485
加油呀,各位高人!!!
--------------------------------------------------------------------------------
来自:ctk 时间:00-7-24 21:39:13 ID:292610
@_@
--------------------------------------------------------------------------------
来自:xlf 时间:00-7-26 06:10:06 ID:294174
我有一个获得硬件信息的控件,还能检测Bios, 不过是for delphi 4
E-Mail:xxz007@yeah.net
请注明什么控件
--------------------------------------------------------------------------------
来自:Jamw 时间:00-7-26 08:37:22 ID:294234
我有个API例子的源码。有兴趣吗?我的OICQ是2336170
--------------------------------------------------------------------------------
来自:wumeng 时间:00-7-26 08:49:15 ID:294245
有兴趣,请大家给我.
wumengs@sina.com.cn
--------------------------------------------------------------------------------
来自:123123 时间:00-7-26 09:19:04 ID:294277
xlf 侠客:
我要那个控件,mail to me,OK ?
jamw侠客:
我也要那个API例子的源码,很有兴趣!mail to me,OK ?
to lawrenceZhang:
请大侠也给我一份,OK ?
(排名不分前后)
Please mail to : catyy1101@yeah.net
Thanks !
--------------------------------------------------------------------------------
来自:wint 时间:00-7-26 10:23:10 ID:294355
我想提问者是想直接跟硬件通讯。
符合PNP的设备还有可能做到。
否则你只能通过操作系统间接通讯。因为此类硬件厂家的做法很不一致。
--------------------------------------------------------------------------------
来自:hanson 时间:00-7-27 09:14:56 ID:295307
to xlf :
可以给我那个控件吗 ?
to jamw:
API例子的源码,我也非常感兴趣!给我发一份?
谢谢各位大侠的鼎力支持!!
--------------------------------------------------------------------------------
www, 对此问题,您可以:
仅仅添加注释,注释内容:(请您注意换行, 如果只想获得email通知,注释可以不填。 )
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -