在DELPHI中怎么取CPU号?谢谢!~~

LOVEJAVA88 2003-09-15 12:51:09

我想做一个对软件加密的算法,需要哇!
问还有其它方法吗?在线等待,给分
...全文
266 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jpyc 2003-09-15
  • 打赏
  • 举报
回复
http://218.56.11.178:8020/web/technology.aspx

-> 下载基地->例程-硬件控制->内存CPU硬盘检测/系统信息检测
roc_fu 2003-09-15
  • 打赏
  • 举报
回复
搂主是要ID还是要型号?
roc_fu 2003-09-15
  • 打赏
  • 举报
回复
var

a:array[0..15] of byte;

dword save_edi, save_esi, save_esp, save_ebp, save_ebx;

begin

asm

mov save_edi, EDI

mov save_esi, ESI

mov save_esp, ESP

mov save_ebp, EBP

mov save_ebx, EBX

mov eax,0

DW $A20F

lea esi, a

mov edi, 0

 

// mov a[0],ebx

mov dword ptr [esi+edi], ebx

add edi, 4

// mov a[4],edx

mov dword ptr [esi+edi], edx

add edi, 4

// mov a[8],ecx

mov dword ptr [esi+edi], ecx

 

mov ebx, save_ebx

mov ebp, save_ebp

mov esp, save_esp

mov esi, save_esi

mov EDI, save_edi

end;

end;

hongqi162 2003-09-15
  • 打赏
  • 举报
回复
结果放在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;

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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