我用了这个方法
Shell App.Path + "\wordpad.exe " + App.Path + "\pathsp.def", vbNormalFocus在一个目录里可以,但是把程序拷到另一个目录,就报告找不到文件,出错,请问是怎么回事啊,该怎么解决啊!

解决方案 »

  1.   

    调入 ShellExecute 的DLL命令!ShellExecute 
    试图运行 tcWorkDir 目录中的 tcFileName 文件。
    语法:ShellExecute(tcFileName, tcWorkDir, tcOperation)
    返回值:nSuccess
    参数:
    tcFileName 指定所要运行的文件。
    tcWorkDir 指定所要运行文件的路径。
    tcOperation 指定所要进行的操作。
    nSuccess 使用下列值指定运行是否成功。2 = 错误的关联(例如,无效的 URL)
    29 = 加载应用程序失败
    30 = 应用程序忙
    31 = 无相关的应用程序大于 32 的值代表成功,并且返回运行应用程序的一个实例句柄。 例如:(DLL申明省略)
    dim nSuccess as integer,sFileToOpen as string
    sFileToOpen=App.Path + "\pathsp.def"
    nSuccess=ShellExecute ("Notepad.exe " & sFileToOpen,"" ,"Open")
    if nSuccess<=32 then  MsgBox "打开失败“
      

  2.   

    你把wordpad.exe放在你工程的目录里了??????????????
      

  3.   

    申明如下: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 Long
      

  4.   

    Shell App.Path + "\wordpad.exe " + App.Path + "\pathsp.def", vbNormalFocus
          --------------------------问题在这里。写字板程序并不一定在你的当前目录。应该到系统目录下调用它,就是改成
    Shell %windir% + "\wordpad.exe " + App.Path + "\pathsp.def", vbNormalFocus
    %windir% 是系统目录