我写清楚了路径,shell命令还是找不到调用的程序,但将生成的程序放在调用的程序安装目录下,却可以找到,why??

解决方案 »

  1.   

    其实也没有必要写得太清楚的路径
    最好是用APP,或是直接调用就可以了  On Error Resume Next
      Shell "calc.exe"
    这样应该是可以了,调用计算器
      

  2.   

    代码如下:(是直接调用的)
    Shell ("C:\programfiles\RNAstructure.exe /fold -s " & fn11 & " -c " & fn22)
    "fold -s " & fn11 & " -c " & fn22"是 RNAstructure.exe 的命令,不用理它。
      

  3.   

    同意 楼上的,使用APP.PATH .
      

  4.   

    \\programfiles\\这个中间有空格的吧.
      

  5.   

    请问如何使用APP.PATH?
    我的VB差,帮我写一下代码,急用。谢谢!!
      

  6.   

    Shell (app.path + "\你的程序所在的文件夹(注意只是文件夹的名称)\RNAstructure.exe /fold -s " & fn11 & " -c " & fn22)
      

  7.   

    App.Path有Bug的
    tj123写的代码放在子文件夹里没问题,放在某个盘下就......
      

  8.   

    C:\Program Files在代码中要用到路径的地方,我都会从资源管理器的地址栏复制,或是从程序的属性中复制。免得像你一样拿着不是问题的问题出来骗人。
      

  9.   

    \\programfiles\\中间的空格是我提问时不小心打错了,但在程序中没有错的。
      

  10.   

    这是我现在在用的代码:
    Shell ("D:\Program Files\RNAstructure 4.11\RNAstructure /fold -s " & fn11 & " -c " & fn22)
    十分奇怪的是:我把自己的程序放在桌面上,RNAstructure能被调用但却不执行命令也不自动退出,(任务管理器中有进程出现,但不占用CPU),
    但是如果我把自己的程序放在“D:\Program Files\RNAstructure 4.11”之下却没有任何问题,RNAstructure 调用执行任务后自动退出。
      

  11.   

    Public Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long利用这个API函数将Program Files这样的路径转换为短路径。然后再运行程序
      

  12.   

    小弟试了一下 在路径里面加空格是没问题的 shell 能找的文件 小弟是win2k as版 
    另外shell 前面加一个call 吧 这样不影响程序 不过合理一些
      

  13.   

    请问“老加班的人”:
     我的API不熟,请帮我把代码写完好吗?谢谢!!
      

  14.   

    Public Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As LongPublic Function Gs(LongName As String) As String
    Dim ShortName As String * 256
    GetShortPathName LongName, ShortName, 256
    Gs = ShortName
    End Function