VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)
首页 - 经验之谈 - 如何直接开启一个文件
发表评论(0)作者:不详, 平台:VB6.0+Win98, 阅读:10016, 日期:2001-09-16
如何直接开启一个文件


作者: cww 

  Shell 是用来执行外部的可执行文件
如果是一个文件,那要用ShellExecute来启动预设的程式来开启文件
注释:HINSTANCE ShellExecute(
注释: HWND     hwnd,         // handle to parent window
注释: LPCTSTR  lpOperation,  // pointer to string that specifies operation to perform
注释: LPCTSTR  lpFile,       // pointer to filename string
注释: LPTSTR   lpParameters, // pointer to string that specifies executable-file parameters
注释: LPCTSTR  lpDirectory,  // pointer to string that specifies default directory
注释: INT      nShowCmd      // whether file is shown when opened
注释:   );

例:.doc 是由word或wordpad来开启
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
     (ByVal hwnd As Long, ByVal lpOperation As String, _
      ByVal lpFile As String, ByVal lpParameters As String, _
      ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Const SW_SHOW = 5

ret = ShellExecute(me.hWnd, "open" , "文件完整路径及名称","", "", SW_SHOW

事实上有一个更快的方式,便是使用Start指令,这个指令用法简单
eg. Start mydoc.doc
故,在vb中便是使用 Shell "start mydoc.doc"

如何查看某个文件是和谁相关联呢?例如:.txt是由哪个程式开启,
1.查[HKEY_CLASSES_ROOT\.txt]
  取预设值,如本人电脑预设值为 "txtfile"
2.查[HKEY_CLASSES_ROOT\txtfile\shell\open\command]
  取预设值,如本人电脑预设值为 "C:\WINDOWS\NOTEPAD.EXE %1"
如此可知.txt 是内定由NotePad.exe所执行。
注:若step 1.取得的预设值是 "xxxx",则step 2.便是查
    [HKEY_CLASSES_ROOT\xxxx\shell\open\command]的预设值