[已解决]api函数GetLogicalDriveStrings问题
本帖最后由 风行者 于 2010-11-26 10:45 编辑下面代码为什么只返回一个盘符,应该是所有盘符显示才对
不知道哪里问题?
$stString= DLLStructCreate("char ui")
DllCall("Kernel32.dll","DWORD","GetLogicalDriveStrings","DWORD",1023,"ptr",DllStructGetPtr($stString))
$sFileName= DllStructGetData($stString,"ui")
MsgBox(0,"",$sFileName) $stString中的数据是以NULL字符相分隔的,用StringLen函数取得下一字符串的偏移地址,指针加上该偏移就是下一个字符串,最后的一个字符串是以2个NULL字符隔开的。 能不能举个例子
$tBuffer = DllStructCreate("char ui")
$pBuffer = DllStructGetPtr($tBuffer)
$iResult = DllCall("Kernel32.dll", "dword", "GetLogicalDriveStrings", "dword", 1024, "ptr", $pBuffer)
While 1
$tDrive = DllStructCreate("char ui", $pBuffer)
$sDrive = DllStructGetData($tDrive, "ui")
If ($sDrive = "") Then ExitLoop
MsgBox(0, "", $sDrive)
$pBuffer += StringLen($sDrive) + 1
WEnd
页:
[1]