![]() |
#2
东海一鱼2009-09-26 14:31
|

;by onepc 153785587
;;;;;;;取得本地盘符
_getdriver proc uses esi
local @dwDriverSize
local @szDriverBuffer[MAX_PATH]:BYTE
invoke RtlZeroMemory,addr @szDriverBuffer,sizeof @szDriverBuffer
invoke GetLogicalDriveStrings,@dwDriverSize,addr @szDriverBuffer ;存放的是A:\,0,C:\,0 [A:\,0]这里刚才是四b
;就是指针加移动4之后指向值不为0时循环。取盘符
;invoke MessageBox,NULL,addr @szDriverBuffer,CTXT("Driver"),0 ;这里只能得到第一个盘符。遇0结束
lea esi,@szDriverBuffer ;把缓冲区的地址传给esi
xor ebx,ebx
.while TRUE
invoke MessageBox,NULL,esi,CTXT("Driver"),0
.break .if byte ptr [esi]==bl
add esi,4
.endw
ret
_getdriver endp
;;;;;;;取得本地盘符
;;;;;;;取得本地盘符
_getdriver proc uses esi
local @dwDriverSize
local @szDriverBuffer[MAX_PATH]:BYTE
invoke RtlZeroMemory,addr @szDriverBuffer,sizeof @szDriverBuffer
invoke GetLogicalDriveStrings,@dwDriverSize,addr @szDriverBuffer ;存放的是A:\,0,C:\,0 [A:\,0]这里刚才是四b
;就是指针加移动4之后指向值不为0时循环。取盘符
;invoke MessageBox,NULL,addr @szDriverBuffer,CTXT("Driver"),0 ;这里只能得到第一个盘符。遇0结束
lea esi,@szDriverBuffer ;把缓冲区的地址传给esi
xor ebx,ebx
.while TRUE
invoke MessageBox,NULL,esi,CTXT("Driver"),0
.break .if byte ptr [esi]==bl
add esi,4
.endw
ret
_getdriver endp
;;;;;;;取得本地盘符
我这里的G盘[最后一个盘。] 不能显示。。