Results 1 to 12 of 12

Thread: Shell and wait File not found error WHY???[RESOLVED]

Hybrid View

  1. #1

    Thread Starter
    New Member
    Join Date
    Sep 2011
    Posts
    9

    Re: Shell and wait File not found error WHY???

    Thanks Westconn - I have sorted the problem

    - I needed to put a line in my Batch file to change the path in dos, as it was not working even after using quotes!



    THIS IS MY WORKING CODE:

    Code:
    Option Explicit
    
    ''' *************************************************************************
    ''' Module Constant Declaractions Follow   (SOME BORING JARGON BASICALLY)
    ''' *************************************************************************
    ''' Constant for the dwDesiredAccess parameter of the OpenProcess API function.
    Private Const PROCESS_QUERY_INFORMATION As Long = &H400
    ''' Constant for the lpExitCode parameter of the GetExitCodeProcess API function.
    Private Const STILL_ACTIVE As Long = &H103
    
    ''' *************************************************************************
    ''' Module Variable Declaractions Follow    (SOME MoRE BORING JARGON BASICALLY)
    ''' *************************************************************************
    ''' It's critical for the shell and wait procedure to trap for errors, but I
    ''' This variable is used to pass error
    ''' messages between procedures.
    Public gszErrMsg As String
    
    
    ''' *************************************************************************
    ''' Module DLL Declaractions Follow (SOME BORING JARGON BASICALLY)
    ''' *************************************************************************
    Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
    Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long
    
    
    Public Sub DemoShellAndWait()
    
    ''''WOHHHHH SLOW DOWN WE WANNA SAVE THIS FIRST DUDE
    '' Code Saves to specified directory
        
    ''''C:\xe\Confirmation of Booking - every user will using this directory to store the echosign api mods.
    
    ChDir "C:\xe\"
    ActiveDocument.SaveAs FileName:="C:\xe\ConfirmationofBooking", _
    FileFormat:=wdFormatDocument97
    
    ''' Including this close script ensures the file will be found by the batch script - if its not open it will definately send.
    ActiveDocument.Close
    
    
    ''' Now we can start the shelling - error handler first though rudeboy. Gotta be robust.
    
    On Error GoTo ErrorHandler
        
        ''' Clear the error mesaage variable.
        gszErrMsg = vbNullString
        
        ''' Notification that the Integration is about to begin.
        MsgBox "You are about to Send This Confirmation Via Echosign To the Desired Recipient.", vbInformation, "Echosign API Integration"
        
        ''' Shell out to the Echosign.
        If Not bShellAndWait("C:\xe\echo2.bat http://www.example.com/services/Echo...umentService11 IQKL5CXI6V2C4W  send C:\xe\ConfirmationofBooking.Doc [email protected]") Then Err.Raise 9999
        
        ''' This message box will not display until you have dismissed the shell.
        MsgBox "You have finished sending this confirmation via Echosign.", vbInformation, "Shell and Wait Demo"
        
        Exit Sub
        
    ErrorHandler:
        ''' If we ran into any errors this will explain what they are.
        MsgBox gszErrMsg, vbCritical, "Shell and Wait Demo"
        
        End Sub
    
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ''' Comments:   Shells out to the specified command line and waits for it to
    '''             complete.
    '''
    ''' Arguments:  szCommandLine
    '''             iWindowState
    '''
    '''
    ''' Returns:    Boolean         True on success, False on error.
    '''
    ''' Date        Developer       Action
    ''' --------------------------------------------------------------------------
    ''' 05/19/05    Ben Barnes      Mangled together with some other nice functions to make this sexy script
    '''
    'Private
    Public Function bShellAndWait(ByVal szCommandLine As String, Optional ByVal iWindowState As Integer = vbHide) As Boolean
    
        Dim lTaskID As Long
        Dim lProcess As Long
        Dim lExitCode As Long
        Dim lResult As Long
        
        On Error GoTo ErrorHandler
    
        ''' Run the Shell function.
        lTaskID = Shell(szCommandLine, iWindowState)
        
        ''' Check for errors.
        If lTaskID = 0 Then Err.Raise 9999, , "Shell function error."
        
        ''' Get the process handle from the task ID returned by Shell.
        lProcess = OpenProcess(PROCESS_QUERY_INFORMATION, 0&, lTaskID)
        
        ''' Check for errors.
        If lProcess = 0 Then Err.Raise 9999, , "Unable to open Shell process handle."
        
        ''' Loop while the shelled process is still running.
        Do
            ''' lExitCode will be set to STILL_ACTIVE as long as the shelled process is running.
            lResult = GetExitCodeProcess(lProcess, lExitCode)
            DoEvents
        Loop While lExitCode = STILL_ACTIVE
        
        bShellAndWait = True
        Exit Function
        
    ErrorHandler:
        gszErrMsg = Err.Description
        bShellAndWait = True
      End Function

    But Now I have another issue...


    I need to combine these two in a call routine which i can attach to a command button click routine (called cmd)

    So far i have:

    Public Sub Cmd1()
    DemoShellAndWait
    Dim s As String

    s = Application.Run(bShellAndWait)

    end sub.


    This is clearly wrong - i know there are arguments to be passed to Run(bshellandwait(varg1,varg2,etc)

    but i cant seem to get it to work...


    Anybody got any further tips - love to get this wrapped up ASAP Thanks again.
    Last edited by Barnzee; Sep 15th, 2011 at 02:41 AM. Reason: altered web and email addresses to example.com

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width