一些有用的Windows Shell对象库(已经封装为用户对象)
来源:互联网 发布:软件项目测试方案 编辑:程序博客网 时间:2024/04/29 02:35
下载:www.pdriver.com/pb02/11/6shell.zip (size:11kb) (pb 6.x格式)
说明:陶清
本程序是老外所写,有封装好的用户对象及源代码,但没有写调用例程,函数的注解和参数说明还比较详细(英文),自己花点时间写点调用例程吧
1.有move/copy/delete 多个文件(包括目录和子目录)功能
2.因为使用标准Windows Shell方法,所以结果和“资源管理器”效果一样,即有动画提示,有重名文件也同样会提示是否覆盖等
3.可以浏览(目录/打印机/网上邻居) <--这一点本站已经有许多对象可以做到一点,所有的方法都是一致的。
4.可以格式化磁盘。(同样是和Windows出现的效果一样)
程序中用到了下面这些API函数
=== Shell functions
Subroutine SHAddToRecentDocs( ulong uFlags, Ref String pV ) Library "shell32.dll"
Function long SHBrowseForFolder( Ref BROWSEINFO lpBi ) Library "shell32.dll"
Function boolean SHGetPathFromIDList( long pIDL, Ref String pszPath ) Library "shell32.dll" Alias For "SHGetPathFromIDListA"
Function long SHFileOperation( Ref SHFILEOPSTRUCT lpFileOp ) Library "shell32.dll" Alias For "SHFileOperationA"
Function long SHGetSpecialFolderLocation( long hwndOwner, long nFolder, Ref Long ppidl ) Library "shell32.dll"
Function long SHFormatDrive( ulong hWnd, ulong iDrive, ulong iCapacity, ulong iType ) Library "shell32.dll"
=== Memory functions
Function long RtlMoveMemory(REF Char Destination[], long Source, long Size) library "kernel32"
Function long RtlMoveMemory(long Destination, REF Char Source[], long Size) library "kernel32"
Function long LocalAlloc(long Flags, long Bytes) library "kernel32"
Function long LocalFree(long MemHandle) library "kernel32"
转载:http://www.pdriver.com/display.asp?key_id=1180
==========================================================
Instance Variables
// MAX_PATH constant for file operations
Private constant long MAX_PATH = 260
// SHBrowseForFolder constants
Private:
constant ulong BIF_RETURNONLYFSDIRS = 1 // Browse for directory
constant ulong BIF_DONTGOBELOWDOMAIN = 2 // For starting the Find Computer
constant ulong BIF_STATUSTEXT = 4
constant ulong BIF_RETURNFSANCESTORS = 8
constant ulong BIF_EDITBOX = 16
constant ulong BIF_BROWSEFORCOMPUTER = 4096 // Browse for computer
constant ulong BIF_BROWSEFORPRINTER = 8192 // Browse for printers
constant ulong BIF_BROWSEINCLUDEFILES = 16384 // Browse for everything
// SHAddToRecentDocs constants
Private:
constant ulong SHARD_PIDL = 1
constant ulong SHARD_PATH = 2
// File Operation constants
Private:
constant ulong FO_MOVE = 1
constant ulong FO_COPY = 2
constant ulong FO_DELETE = 3
constant ulong FO_RENAME = 4
// File Operation flags
Private:
constant ulong FOF_MULTIDESTFILES = 1 // 0x0001
constant ulong FOF_CONFIRMMOUSE = 2 // 0x0002
constant ulong FOF_SILENT = 4 // 0x0004
constant ulong FOF_RENAMEONCOLLISION = 8 // 0x0008
constant ulong FOF_NOCONFIRMATION = 16 // 0x0010
constant ulong FOF_WANTMAPPINGHANDLE = 32 // 0x0020
constant ulong FOF_ALLOWUNDO = 64 // 0x0040
constant ulong FOF_FILESONLY = 128 // 0x0080
constant ulong FOF_SIMPLEPROGRESS = 256 // 0x0100
constant ulong FOF_NOCONFIRMMKDIR = 512 // 0x0200
constant ulong FOF_NOERRORUI = 1024 // 0x0400
// SHGetSpecialFolderLocation constants
Public:
constant ulong CSIDL_DESKTOP = 0 // 0x0000
constant ulong CSIDL_PROGRAMS = 2 // 0x0002
constant ulong CSIDL_CONTROLS = 3 // 0x0003
constant ulong CSIDL_PRINTERS = 4 // 0x0004
constant ulong CSIDL_PERSONAL = 5 // 0x0005
constant ulong CSIDL_FAVORITES = 6 // 0x0006
constant ulong CSIDL_STARTUP = 7 // 0x0007
constant ulong CSIDL_RECENT = 8 // 0x0008
constant ulong CSIDL_SENDTO = 9 // 0x0009
constant ulong CSIDL_BITBUCKET = 10 // 0x000a
constant ulong CSIDL_STARTMENU = 11 // 0x000b
constant ulong CSIDL_DESKTOPDIRECTORY = 16 // 0x0010
constant ulong CSIDL_DRIVES = 17 // 0x0011
constant ulong CSIDL_NETWORK = 18 // 0x0012
constant ulong CSIDL_NETHOOD = 19 // 0x0013
constant ulong CSIDL_FONTS = 20 // 0x0014
constant ulong CSIDL_TEMPLATES = 21 // 0x0015
constant ulong CSIDL_COMMON_STARTMENU = 22 // 0x0016
constant ulong CSIDL_COMMON_PROGRAMS = 23 // 0X0017
constant ulong CSIDL_COMMON_STARTUP = 24 // 0x0018
constant ulong CSIDL_COMMON_DESKTOPDIRECTORY = 25 // 0x0019
constant ulong CSIDL_APPDATA = 26 // 0x001a
constant ulong CSIDL_PRINTHOOD = 27 // 0x001b
Local External Functions
// Shell functions
Subroutine SHAddToRecentDocs( ulong uFlags, Ref String pV ) Library "shell32.dll"
Function long SHBrowseForFolder( Ref BROWSEINFO lpBi ) Library "shell32.dll"
Function boolean SHGetPathFromIDList( long pIDL, Ref String pszPath ) Library "shell32.dll" Alias For "SHGetPathFromIDListA"
Function long SHFileOperation( Ref SHFILEOPSTRUCT lpFileOp ) Library "shell32.dll" Alias For "SHFileOperationA"
Function long SHGetSpecialFolderLocation( long hwndOwner, long nFolder, Ref Long ppidl ) Library "shell32.dll"
Function long SHFormatDrive( ulong hWnd, ulong iDrive, ulong iCapacity, ulong iType ) Library "shell32.dll"
// Memory functions
Function long RtlMoveMemory(REF Char Destination[], long Source, long Size) library "kernel32"
Function long RtlMoveMemory(long Destination, REF Char Source[], long Size) library "kernel32"
Function long LocalAlloc(long Flags, long Bytes) library "kernel32"
Function long LocalFree(long MemHandle) library "kernel32"
- 一些有用的Windows Shell对象库(已经封装为用户对象)
- 一些有用的shell指令
- 提示已经存在编码为xx的对象
- 封装iframe对象为jquery 对象
- 不占用windows用户对象的定时器
- js封装为map对象
- 一个自己封装的日期时间操作的用户对象
- 自己封装的一个文件目录操作用户对象
- 自己封装的一个文件目录操作用户对象
- 将游戏中的行为封装为自我管理的对象(1)
- 为 lua 封装 C 对象的生存期管理问题
- 三角形对象的封装
- 面对对象的封装
- 对象的封装
- 对象的封装
- 面向对象的封装
- 面向对象的封装
- Windows应用程序的面向对象特性 之 封装
- Eclipse中SWT Designer注册成功
- HP-UX glance正式版
- 使用API获取一个应用是否运行结束的例子
- 以前写的文字——随感
- 在Java中应用设计模式--Singleton
- 一些有用的Windows Shell对象库(已经封装为用户对象)
- 谋定而后动,理想不相信热血
- 《应用Rails进行敏捷Web开发》样章试读
- 埃里克森的心理社会发展阶段理论
- 转载:哈佛大学精神病测试题(笑话)
- 一个程序员的成长的六个阶段
- [转]三种情感
- 程序与细节
- Google Sitemap-搜索引擎与网站的智能互动