Shell "F:\Program Files\Microsoft Office\OFFICE11\winword.exe 计算结果.doc", vbNormalFocus
上边一行是在我将计算结果输出到“计算结果”文件后用shell语句调用word打开结果文件,但是我用的是绝对路径,而每个人的office安装路径不同,版本也不同,这句我该如何写才能使他在任何计算机上使用?shell "c:\windows\notepad.exe g:\bishe\vbpro\v.txt",vbNormalFocus
还有我想用记事本打开一个数据文本,数据文本出如何使用相对路径。如果我用一个fname字符串变量存储用户输入的文件路径,将fname作为参数shell "c:\windows\notepad.exe fname",vbNormalFocus
这样写是否可行?不行的话请问应该怎么办?

解决方案 »

  1.   

    你先搜索一下word.exe和notepad.exe这2个程序,然后写进注册表保存起来.
    以后每次都使用就行了.
    只有第一次的时候搜索下,应该还停快吧.
      

  2.   

    '第一个问题
    Private 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 LongPrivate Sub Command1_Click()
        ShellExecute Me.hwnd, "open", "c:\计算结果.doc", vbNullString, vbNullString, 0
    End Sub'第二个问题
    shell "notepad.exe " & fname ,vbNormalFocus  "notepad.exe "后面有个空格
      

  3.   

    第一题改为Private Sub Command1_Click()
        ShellExecute Me.hwnd, "open", "c:\计算结果.doc", "", "", vbNormalFocus
    End Sub