启动文本文件可以用:Shell "Start C:\11.txt"

解决方案 »

  1.   

    chr(34) & nowdir & "\rar.exe" &  chr(34) & " a -sfx -m5 -v ....
    目录文件加引号
      

  2.   

    我以前也遇过这种情况,不过我把nowdir + "\rar.exe a -sfx -m5 -v"那的“+”改为"&"就行了,因为如果不改,“K:\rar.exe” 会变成“K: \rar.exe”(多出一个空格),把path用print打印出来看看是不是这个问题
      

  3.   

    有没有高手啊!!!! 改成&还是不可以但我在发布后,打印出的路径(用MSGBOX)却是正确的!而写字板能打开,只是找不到后面的文件名现在的问题就是,程序发布后,SHELL语句只能认识不跟参数的程序,比如:shell("c:\111.exe",1)如果是:
    shell("c\111.exe -a",1)他不认"-a"为什么啊
      

  4.   

    Path = nowdir & "\rar.exe a -sfx -m5 -v" & Trim(setup.size.Text) & " -r -o+ " & backupdir & "\output " & sourcedirShell(Path, vbMaximizedFocus)这样可不可以呢?
      

  5.   

    你是啥系统
    2000或nt就别用shell,会有问题
    用api,shellexecute
      

  6.   

    问题已经出来了,请大家帮助解决!SHELL不支持长文件名!如果写:shell("c:\windows\write.exe c:\program files\app\readme.txt",1)由于program files是长文件名,故错误!!改成progra~1就对了这也是为什么发布前正确(k:\project\mydoc\,都是小于8的),而发布后错误的原因所在!问题是,怎么办,上面的兄弟提到了API,能给源码吗?因为如果手工写函数实现截取,我怕如果是中文目录就麻烦了!
      

  7.   

    找到了API里:GetShortPathName,但不会用~帮我
      

  8.   


    Public Function GetShortName(ByVal strPath As String) As String
    '获得文件短文件名    Dim rc As Long
        Dim lpBuff As String
        Dim cbBuff As Long
        
        lpBuff = String(255, Chr(0))
        cbBuff = Len(lpBuff)
        GetShortName = ""
        
        rc = GetShortPathName(ByVal strPath, ByVal lpBuff, cbBuff)
        
        GetShortName = lpBuff
        GetShortName = Replace(GetShortName, Chr(0), "")
        GetShortName = Replace(GetShortName, " ", "")
        
    End Function