现在的位置: 首页 > 综合 > 正文

获取指定类型文件的缺省系统关联

2013年10月12日 ⁄ 综合 ⁄ 共 859字 ⁄ 字号 评论关闭

有时我们需要检查指定类型的文件是否存在缺省的程序可用来打开它,例如,如果我们要显示一个 .DOC 文件,首先我们要检查当前系统中是否安装了合适的程序可以打开它,下面的函数可以完成此功能:

  1. m.cType = 'xls'
  2. m.cExeFile = SysDefaultOpenedBy( m.cType )
  3. IF EMPTY( m.cExeFile )
  4.   MESSAGEBOX( '没有找到缺省的程序来打开 ' + m.cType + ' 类型的文件' )
  5. ELSE
  6.   MESSAGEBOX( m.cType + ' 类型的文件可以使用下面的程序来打开' ;
  7.     + 0h0d0a0d0a + m.cExeFile )
  8. ENDIF
  9. FUNCTION SysDefaultOpenedBy( tcTypeName )
  10.   LOCAL cTestFile, cExeFile
  11.   
  12.   DO WHILE .T.
  13.     m.cTestFile = FORCEEXT( SYS(2015), m.tcTypeName )
  14.     IF !FILE( m.cTestFile )
  15.       EXIT
  16.     ENDIF
  17.   ENDDO
  18.   STRTOFILE( 'Test', m.cTestFile )
  19.   
  20.   DECLARE Long FindExecutable IN shell32 ;
  21.     String lpFile, String lpDirectory, String @ lpResult
  22.   m.cExeFile = REPLICATE(CHR(0), 260 )
  23.   IF ( FindExecutable( m.cTestFile, NULL, @ m.cExeFile ) > 32 )
  24.     m.cExeFile = RTRIM( m.cExeFile, CHR(0))
  25.   ELSE
  26.     m.cExeFile = ''
  27.   ENDIF
  28.   
  29.   ERASE ( m.cTestFile )
  30.   RETURN m.cExeFile
  31. ENDFUNC

抱歉!评论已关闭.