• 主页
  • API 调用
  • 基础类
  • 控件与界面
  • 数据库相关
  • DataWindow
  • 项目管理
  • Web 应用
  • 脚本语言
yueyang 2003年01月11日
PB读取硬盘VOLUME序列号源码2则及问题请教?
Function Boolean GetVolumeInformationA( &

  ref String ls_Rootpath, &

  ref String ls_volumnename, &

  Ulong lul_VolumeNameSize, ref Ulong lul_VolumeSerialNumber, &

  ref Ulong lul_MaximumComponentLength, &

  ref Ulong lul_FileSystemFlags, &

  ref String ls_FileSystemNameBuffer, &

  Ulong lul_FileSystemNameSize &

  ) Library "Kernel32.dll"


/******************* 程序代码 ************************/

String ls_Rootpath, ls_volumnename

ls_Rootpath = "C:" // 指定要得到序列号的硬盘,

// 一般情况都是C盘,除非你能保证用户存在其它逻辑盘或物理盘

ls_volumnename = Space(256) // 分配足够的空间,下同

Ulong lul_VolumeNameSize

lul_VolumeNameSize = 256

Ulong lul_VolumeSerialNumber, lul_MaximumComponentLength, lul_FileSystemFlags

lul_MaximumComponentLength = 256

String ls_FileSystemNameBuffer

ls_FileSystemNameBuffer = space(256)

Ulong lul_FileSystemNameSize

lul_FileSystemNameSize = 256

beep(1)

boolean lb_rtn

lb_rtn = False

lb_rtn = GetVolumeInformationA(ls_Rootpath, ls_volumnename, lul_VolumeNameSize,

lul_VolumeSerialNumber, lul_MaximumComponentLength, lul_FileSystemFlags,

ls_FileSystemNameBuffer, lul_FileSystemNameSize)

if lb_rtn = true then

MessageBox("提示","函数调用成功!")

else

MessageBox("提示","函数调用失败!")

end if

sle_1.text = String(lul_VolumeSerialNumber) // 得到硬盘序列号

/********************* 结束 *************************/


以上程序在PB8中调试成功,但得到的VOL的序列号和实际那个8位数字加字母的序列号不同,它得到的全是数字这是怎么回事?

OLEObject PBObject
long ll_status

PBObject = CREATE OLEObject
ll_status = PBObject.ConnectToObject &
("WinMgmts::Win32_LogicalDisk='C:'")

IF ll_status <> 0 THEN
// Handle the error
messagebox("错误", "createobject error! error code:" + string(ll_status))
destroy pbobject
return
end if
sle_1.text = string(PBObject.VolumeSerialNumber)
PBObject.DisconnectObject ( )
destroy pbobject
上面这个是陶清的程序,能够得到和用DIR看到的一模一样的序列号但在XP中不能使用怎样解决?另外这个大侠是否可以分析一下原理。
...全文
19 点赞 收藏 20
写回复
20 条回复

还没有回复,快来抢沙发~

发动态
发帖子
PowerBuilder
创建于2007-09-28

588

社区成员

6.6w+

社区内容

PowerBuilder 相关问题讨论
社区公告
暂无公告