⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 怎样获得机器的各种硬件信息 (2000年8月22日).txt

📁 自己对DELPHI学习的一点体会
💻 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 + -