📄 browserdir.asm
字号:
BrowseCallbackProc proto:DWORD ,:DWORD ,:DWORD ,:DWORD
_BrowserDir proto:DWORD ,:DWORD ,:DWORD
.code
;选择文件夹
_BrowserDir proc hWndParent,lpBuf,lpInitDir
local bi:BROWSEINFO,@szBuf[255]:BYTE
invoke RtlZeroMemory,addr bi,sizeof BROWSEINFO
m2m bi.hwndOwner,hWndParent
mov bi.ulFlags ,BIF_RETURNONLYFSDIRS
.if lpInitDir
mov bi.lpfn,offset BrowseCallbackProc
m2m bi.lParam,lpInitDir
.endif
invoke SHBrowseForFolder,addr bi
.if eax
invoke SHGetPathFromIDList,eax,lpBuf
.if eax
mov eax,lpBuf
.endif
.endif
ret
_BrowserDir endp
;-----------------------------------------------------------
;设置上次的目录
BrowseCallbackProc proc @hwnd,uMsg,lParam,lpData
.if uMsg==BFFM_INITIALIZED
;如果lpData是一个完整路径,wParam为True
;如果lpData是pidl,则wParam为False
invoke SendMessage,@hwnd,BFFM_SETSELECTION,TRUE ,lpData
.endif
mov eax,TRUE
ret
BrowseCallbackProc endp
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -