回 帖 发 新 帖 刷新版面

主题:shell调用 实时错误 5 无效的过程调用或参数

运行的时候,在这一句出错  pid = Shell(sFilePath)
有时候运行没有问题,有时候又出现问题,到底是怎么回事哦?

Private Sub Command1_Click()
Dim strPath As String, sFilePath As String
    strPath = App.Path
     If Right(strPath, 1) <> "\" Then strPath = strPath + "\"
    '接上
    sFilePath = strPath & "\Console1.exe"
    RunProgramWaitExit sFilePath
End Sub

Private Function ShellEx(sFilePath As String, Optional wsWindowStyle As VbAppWinStyle = vbNormalFocus) As Long
    Dim sDriver As String, sDir As String
    sDriver = Left(sFilePath, 3)
    sDir = Left(sFilePath, InStrRev(sFilePath, "\") - 1)
    ChDrive sDriver     '切换当前驱动器(盘)
    ChDir sDir          '切换当前目录
    ShellEx = Shell(sFilePath, 0)
End Function

Private Sub RunProgramWaitExit(sFilePath As String)
    Dim nExitCode As Long
    Dim pid As Long, hProcess As Long
    
       pid = Shell(sFilePath)
       hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, 0, pid)
       nExitCode = STILL_ACTIVE
    Do While nExitCode = STILL_ACTIVE
       Call GetExitCodeProcess(hProcess, nExitCode)
       DoEvents
    Loop
    Call CloseHandle(hProcess)
End Sub

回复列表 (共2个回复)

沙发

出错时你看一个sFilePath变量的值是多少,是不是正常的可执行文件路径。
如果不是可执行文件(exe,cmd,bat,com等),而是普通的其它文件,如:shell("e:\a.txt")时就会出现“无效的过程调用或参数”的错误

板凳


[url=http://www.bootboots.com]ugg boots[/url]
[url=http://www.salelouboutin.com]christian louboutin[/url]
[url=http://www.buylouboutin.com]louboutin[/url]
[url=http://www.bootboots.com]cheap ugg boots[/url]
[url=http://www.bootboots.com]discount ugg boots[/url]
[url=http://www.bootboots.com]ugg boots sale[/url]
[url=http://www.bestlouisvuitton.com]lv handbags[/url]
[url=http://www.sale-mbt.com]mbt shoes[/url]
[url=http://www.discount-christianlouboutin.com]christian louboutin[/url]

我来回复

您尚未登录,请登录后再回复。点此登录或注册