获取指定类型文件的缺省系统关联
2008-08-04 08:31
274 查看
有时我们需要检查指定类型的文件是否存在缺省的程序可用来打开它,例如,如果我们要显示一个 .DOC 文件,首先我们要检查当前系统中是否安装了合适的程序可以打开它,下面的函数可以完成此功能:
m.cType = 'xls'
m.cExeFile = SysDefaultOpenedBy( m.cType )
IF EMPTY( m.cExeFile )
MESSAGEBOX( '没有找到缺省的程序来打开 ' + m.cType + ' 类型的文件' )
ELSE
MESSAGEBOX( m.cType + ' 类型的文件可以使用下面的程序来打开' ;
+ 0h0d0a0d0a + m.cExeFile )
ENDIF
FUNCTION SysDefaultOpenedBy( tcTypeName )
LOCAL cTestFile, cExeFile
DO WHILE .T.
m.cTestFile = FORCEEXT( SYS(2015), m.tcTypeName )
IF !FILE( m.cTestFile )
EXIT
ENDIF
ENDDO
STRTOFILE( 'Test', m.cTestFile )
DECLARE Long FindExecutable IN shell32 ;
String lpFile, String lpDirectory, String @ lpResult
m.cExeFile = REPLICATE(CHR(0), 260 )
IF ( FindExecutable( m.cTestFile, NULL, @ m.cExeFile ) > 32 )
m.cExeFile = RTRIM( m.cExeFile, CHR(0))
ELSE
m.cExeFile = ''
ENDIF
ERASE ( m.cTestFile )
RETURN m.cExeFile
ENDFUNC
m.cType = 'xls'
m.cExeFile = SysDefaultOpenedBy( m.cType )
IF EMPTY( m.cExeFile )
MESSAGEBOX( '没有找到缺省的程序来打开 ' + m.cType + ' 类型的文件' )
ELSE
MESSAGEBOX( m.cType + ' 类型的文件可以使用下面的程序来打开' ;
+ 0h0d0a0d0a + m.cExeFile )
ENDIF
FUNCTION SysDefaultOpenedBy( tcTypeName )
LOCAL cTestFile, cExeFile
DO WHILE .T.
m.cTestFile = FORCEEXT( SYS(2015), m.tcTypeName )
IF !FILE( m.cTestFile )
EXIT
ENDIF
ENDDO
STRTOFILE( 'Test', m.cTestFile )
DECLARE Long FindExecutable IN shell32 ;
String lpFile, String lpDirectory, String @ lpResult
m.cExeFile = REPLICATE(CHR(0), 260 )
IF ( FindExecutable( m.cTestFile, NULL, @ m.cExeFile ) > 32 )
m.cExeFile = RTRIM( m.cExeFile, CHR(0))
ELSE
m.cExeFile = ''
ENDIF
ERASE ( m.cTestFile )
RETURN m.cExeFile
ENDFUNC
相关文章推荐
- Linux系统编程:获取指定目录下指定文件类型的数量
- 文件系统中打开某指定类型文件时,关联并用自己的APP打开
- 文件类型关联 单例模式 用特定程序打开指定素材
- 获取目录下指定类型的所有文件
- 如何更好的判断系统上传文件是指定文件类型--文件魔术数字
- SHGetFileInfo函数 获取系统文件类型及图标
- 重新想象 Windows 8 Store Apps (33) - 关联启动: 使用外部程序打开一个文件或uri, 关联指定的文件类型或协议
- 获取指定路径下指定类型的文件名称,并返回可用的新名称
- <input type="file">定义样式并获取上传文件路径及指定文件类型
- 用C#和WMI获取逻辑驱动器详细信息(驱动器类型,文件系统,剩余空间等)
- 获取系统文件关联图标
- android应用 获取本地指定类型文件 的两种最优方法
- Java获取系统文件类型图标并显示在JSP上
- 背水一战 Windows 10 (99) - 关联启动: 关联指定的文件类型, 关联指定的协议
- 获取指定路径下的文件类型及数量
- linux xfs文件系统无法用readdir获取dirent文件类型d_type则用stat获取暨stat函数讲解
- 从指定网络地址获取已知文件并保存到指定位置-指定文件名字和类型
- 如何不通过内核命令行rootfstype指定根文件系统类型
- <input type="file">定义样式并获取上传文件路径及指定文件类型
- 7种文件类型属性的获取与修改(系统调用)