DELPHI,截取字符串,截取硬盘序列号的后八位

DELPHI,截取字符串,截取硬盘序列号的后八位,第1张

1有时候显示的是十几位。有时候显示的是九位

是因为每个硬盘序列号是不一样的有的有可能还不超过8位。

2我只想要后面的八位数。应该怎么写?

需要引用

strutils单元;

edit2Text:=rightStr(edit1text,8);

>

  uses HardWareInfopas  {引用自定义单元,文件见附件}

procedure TForm1Button1Click(Sender: TObject);

var

  CPUinfo:TCPU_info;       //定义CPU对象

  Diskinfo:TDisk_info;     //硬盘

  Memoryinfo:TMemory_info; //内存

  NICinfo:TNIC_info;       //网卡

  VGAinfo:TVGA_info;        //显卡

begin

  //创建实例

  CPUinfo:=TCPU_infoCreate;

  Diskinfo:=TDisk_infoCreate;

  Memoryinfo:=TMemory_infoCreate;

  NICinfo:=TNIC_infoCreate;

  VGAinfo:=TVGA_infoCreate;

  //显示硬件信息

  memo1LinesAdd('CPU');

  memo1LinesAdd('制造商: '+CPUinfoGetCpuFactory);

  memo1LinesAdd('型号:   '+CPUinfoGetCpuModel);

  memo1LinesAdd('个数:   '+CPUinfoGetCPUCount);

  memo1LinesAdd('硬盘');

  memo1LinesAdd(Diskinfoprint_diskinfo);

  memo1LinesAdd('内存');

  memo1LinesAdd(MemoryinfoGetMemorysize);

  memo1LinesAdd(MemoryinfoGetvirtualmemory);

  memo1LinesAdd(MemoryinfoGetusingMemory);

  memo1LinesAdd('网卡');

  memo1LinesAdd('序列号: '+NICinfoGetNICID);

  memo1LinesAdd('本地IP: '+NICinfoGetLocalIP);

  memo1LinesAdd('MAC地址: '+NICinfoGetMAC);

  memo1LinesAdd('显卡');

  memo1LinesAdd(VGAinfoprintf_VGAinfo);

end;

方法1:先调用FindFirst启动列表,再循环调用FindNext获取文件名存入aa数组,最后调用FindClose关闭列表

方法2:直接使用TFileListBox控件,设置好Drive、Directory、FileType属性,然后访问其Items数组就能得到所有文件/子目录列表了,很简单

什么叫做找回键盘的唯一序列号? 你是说获取你输入的键盘内容,或者是输入键盘内容的键值?

每个键盘值都有他唯一的键值,你可以在OnKeyDown显示输入的key的键值:ShowMessage(IntToStr(key));

如果是要找输入的内容就在OnKeyPress里显示Key,

如果外部需要key的值,则可以用函数或过程传值。

不知道是不是你要的答案,希望可以帮助你。

这个需要调用API函数 DeviceIoControl、 CreateFile

但是需要用到一些结构体的定义  delphi里没有现成的 麻烦 要自己 查msdn把这些

结构体的定义用Pascal语法写出来

建议直接用C++builder 写,就不用自己谢啦 头文件里有, 给你个例子吧

//函数,返回分区信息

Function GetHardDiskPartitionInfo(const DriveLetter:Char;

var VolumeName,VolumeSerialNumber,PartitionType:string;

var TotalSpace,TotalFreeSpace:string): string;

var

NotUsed: DWORD;

VolumeFlags: DWORD;

VolumeInfo: array[0MAX_PATH] of Char;

VSNumber: DWORD;

PType: array[032] of Char;

VName:array[032] of Char;

FreeS,TotalS:Int64;

TotalF:Int64;

begin if not GetVolumeInformation(PChar(DriveLetter + ':\'),

@VName, SizeOf(VolumeInfo), @VSNumber, NotUsed,

VolumeFlags, PType, 32) then

result:='卷信息未能完全返回'#13#10;

VolumeName:=strpas(VName);

VolumeSerialNumber:=InttoHex(VSNumber,8);

PartitionType:=StrPas(PType);

if not GetDiskFreeSpaceEx(PChar(DriveLetter + ':\'),FreeS,TotalS,@TotalF) then

result:=result+'获取卷空间大小失败';

TotalSpace:=FloatToStr(Round(TotalS / 1024 / 1024 /1024 100) / 100);

TotalFreeSpace:=FloatToStr(Round(TotalF / 1024 / 1024 /1024 100) / 100);

end;//读取卷标到Edittextprocedure TForm1btn4Click(Sender: TObject);

var

VName,VSNumber,PType:string;

TotalS,TotalF:string;

begin

GetHardDiskPartitionInfo('c',VName,VSNumber,PType, TotalS,TotalF); //C盘符自己改成要读取的

edt1Text :=VName;

end;//修改磁盘卷标procedure TForm1btn3Click(Sender: TObject);

var

VName:PChar;

begin

VName:=PChar (edt2Text);

SetVolumeLabel('c:\',VName); //C盘符自己改

end;

以上就是关于DELPHI,截取字符串,截取硬盘序列号的后八位全部的内容,包括:DELPHI,截取字符串,截取硬盘序列号的后八位、高分求DELPHI 下取多核CPU ID,硬盘的序号,该怎么处理、delphi xe 取CPU等硬件信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9627478.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存