- .版本 2
- .DLL命令 SHGetDesktopFolder, 整数型, "shell32", "SHGetDesktopFolder"
- .参数 ppshf, 整数型, 传址
- .DLL命令 SHGetMalloc, 整数型, "shell32", "SHGetMalloc"
- .参数 ppMalloc, 整数型, 传址
- .DLL命令 SHGetFolderLocation, 整数型, "Shell32.dll", "SHGetFolderLocation"
- .参数 hwnd, 整数型
- .参数 csidl, 整数型
- .参数 hToken, 整数型
- .参数 dwFlags, 整数型
- .参数 ppidl, 整数型, 传址
- .DLL命令 lstrlenW, 整数型, "kernel32.dll", "lstrlenW", , 取字节长度
- .参数 lpString, 整数型
复制代码
- .版本 2
- .常量 S_FALSE, "1"
- .常量 SHCONTF_FOLDERS, "32"
- .常量 SHCONTF_NONFOLDERS, "64"
- .常量 SHCONTF_INCLUDEHIDDEN, "128"
- .常量 SHGDN_NORMAL, "0"
复制代码
变量名 | 类 型 | 静态 | 数组 | 备 注 | pisfRecBin | 整数型 | | | pMalloc | 整数型 | | | pidlBin | 整数型 | | | IID_IShellFolder | 字节集 | | | pisf | 整数型 | | | peidl | 整数型 | | | idlCurrent | 整数型 | | | uFetched | 整数型 | | | pszPath | 文本型 | | | strret | 整数型 | | | pOleStr | 整数型 | | | dwSize | 整数型 | | | szBuf | 字节集 | | |
pszPath = 取空白文本 ( #MAX_PATH )SHGetDesktopFolder (pisfRecBin )SHGetMalloc (pMalloc )SHGetFolderLocation ( #NULL, #CSIDL_BITBUCKET, #NULL, 0, pidlBin )IID_IShellFolder = { 230, 20, 2, 0, 0, 0, 0, 0, 192, 0, 0, 0, 0, 0, 0, 70 }COM_调用COM方法 (pisfRecBin, 5, pidlBin, #NULL, 取指针_字节集型 (IID_IShellFolder ), 取指针整数_ (pisf ), , , , , , )COM_调用COM方法 (pisf, 4, #NULL, 位或 ( #SHCONTF_FOLDERS, #SHCONTF_NONFOLDERS, #SHCONTF_INCLUDEHIDDEN ), 取指针整数_ (peidl ), , , , , , , )判断循环首 (真)如果真 (COM_调用COM方法 (peidl, 3, 1, 取指针整数_ (idlCurrent ), 取指针整数_ (uFetched ), , , , , , , ) = #S_FALSE )跳出循环 ()SHGetPathFromIDListA (idlCurrent, pszPath)strret = LocalAlloc ( #LMEM_ZEROINIT, 264 )COM_调用COM方法 (pisf, 11, idlCurrent, #SHGDN_NORMAL, strret, , , , , , , )pOleStr = 指针_到整数 (strret + 4 )dwSize = lstrlenW (pOleStr )szBuf = 指针到字节集 (pOleStr, dwSize × 2 + 2 )LocalFree (strret )调试输出 (pszPath, 编码_Unicode到Ansi (szBuf )) 判断循环尾 ()COM_Release (pMalloc )COM_Release (peidl )COM_Release (pisf )
拿走拿走~
遍历并显示回收站中的文件.e
(887.7 KB, 下载次数: 127)
|