参考一下:function GetHDSerialNumber(Drv : String): String;
var
VolumeSerialNumber : DWORD;
MaximumComponentLength : DWORD;
FileSystemFlags : DWORD;
begin
if Drv[Length(Drv)] =':' then Drv := Drv + '\';
GetVolumeInformation(pChar(Drv),
nil,
0,
@VolumeSerialNumber,
MaximumComponentLength,
FileSystemFlags,
nil,
0);
Result := IntToHex(HiWord(VolumeSerialNumber), 4) +
'-' +
IntToHex(LoWord(VolumeSerialNumber), 4);
end;
var
VolumeSerialNumber : DWORD;
MaximumComponentLength : DWORD;
FileSystemFlags : DWORD;
begin
if Drv[Length(Drv)] =':' then Drv := Drv + '\';
GetVolumeInformation(pChar(Drv),
nil,
0,
@VolumeSerialNumber,
MaximumComponentLength,
FileSystemFlags,
nil,
0);
Result := IntToHex(HiWord(VolumeSerialNumber), 4) +
'-' +
IntToHex(LoWord(VolumeSerialNumber), 4);
end;
解决方案 »
- delphi访问sql server2000数据库时,通过delphi的TDateTimePicker控件选择日期的疑
- 我想写一个在设定的时刻做某事的程序,请大家帮我分析下...
- 求助:各位大哥怎么把 bmp ,gif 图片转换为二进制,然后又转换回来?谢谢!(马上送分)
- 服务端的SQL2000 补丁已经打上,服务端系统是2000 专业版,数据库是SQL2000 开发版
- 请问这个SQL语句应该怎样写??????????????????????????
- 求救:谁有控制扫描仪的源程序,要求能够设置灰度值,扫描区域,以及分辩率
- DELPHI7中怎么关闭子窗口??200分
- ado组件通过odbc操作sybase数据库(在线等待)
- 关于ADOTable
- 关于文件创建和读的代码,这段代码错在哪里?
- 请问AsDate是在那个头文件中定义的
- 一个奇怪的问题?我是没有头绪,有谁能解?
procedure TForm1.Button1Click(Sender: TObject);
var
systeminfo: SYSTEM_INFO;
sector,byte,cluster,free: DWORD;
CDtype: UINT;
name: CHAR;
drvname: string;
volname,filesysname: PCHAR;
sno,maxl,fileflag: DWORD;
begin
Memo1.Lines.Clear();
//检测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;