Need a pause when calling an external program! 
Author Message
 Need a pause when calling an external program!

Help!  I can't seem to make the Confirm message box wait until the
import.exe program has finished running.  Is there any way to pause the
execution until the external program is finished with its tasks?

TIA!  - Craig

Here's my code:

Private Sub Import_Click()
On Error GoTo Err_Import_Click
    Dim Confirm, ProcID
    ProcID = Shell("c:\projects\import\import.exe", 1)

' **** Needs a PAUSE here! ****

    Confirm = MsgBox("Process This File into Database?", 1, "Confirm")
    If Confirm = vbYes Then
        DoCmd.TransferText acImportDelim, , "Import1",
"c:\projects\import\info1.txt", -1
        Else: Exit Sub
    End If

Exit_Import_Click:
    Exit Sub

Err_Import_Click:
    MsgBox Err.Description
    Resume Exit_Import_Click

End Sub



Sat, 30 Oct 1999 03:00:00 GMT  
 Need a pause when calling an external program!

While I can't quote you the number of the article in the kb.  I got this
code to call an external exe and wait until it's finished.  This is for a
32 bit app, There are several articles on How to determine if a Shelled
Application is terminated in the kb.

in the Declarations add:

   Private Type STARTUPINFO
      cb As Long
      lpReserved As String
      lpDesktop As String
      lpTitle As String
      dwX As Long
      dwY As Long
      dwXSize As Long
      dwYSize As Long
      dwXCountChars As Long
      dwYCountChars As Long
      dwFillAttribute As Long
      dwFlags As Long
      wShowWindow As Integer
      cbReserved2 As Integer
      lpReserved2 As Long
      hStdInput As Long
      hStdOutput As Long
      hStdError As Long
   End Type
   Private Type PROCESS_INFORMATION
      hProcess As Long
      hThread As Long
      dwProcessID As Long
      dwThreadID As Long
   End Type

   Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal _
      hHandle As Long, ByVal dwMilliseconds As Long) As Long

   Private Declare Function CreateProcessA Lib "kernel32" (ByVal _
      lpApplicationName As Long, ByVal lpCommandLine As String, ByVal _
      lpProcessAttributes As Long, ByVal lpThreadAttributes As Long, _
      ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, _
      ByVal lpEnvironment As Long, ByVal lpCurrentDirectory As Long, _
      lpStartupInfo As STARTUPINFO, lpProcessInformation As _
      PROCESS_INFORMATION) As Long

   Private Declare Function CloseHandle Lib "kernel32" (ByVal _
      hObject As Long) As Long
   Private Const NORMAL_PRIORITY_CLASS = &H20&
   Private Const INFINITE = -1&

----------------------------------------------------------------------------
---------------------------
'cmdline$ = "c:\projects\import\import.exe"

   Public Sub ExecCmd(cmdline$)
      Dim proc As PROCESS_INFORMATION
      Dim start As STARTUPINFO
      Dim ret&

      ' Initialize the STARTUPINFO structure:
      start.cb = Len(start)

      ' Start the shelled application:

      ret& = CreateProcessA(0&, cmdline$, 0&, 0&, 1&, _
         NORMAL_PRIORITY_CLASS, 0&, 0&, start, proc)

      ' Wait for the shelled application to finish:
      ret& = WaitForSingleObject(proc.hProcess, INFINITE)
      ret& = CloseHandle(proc.hProcess)
   End Sub



Quote:
> Help!  I can't seem to make the Confirm message box wait until the
> import.exe program has finished running.  Is there any way to pause the
> execution until the external program is finished with its tasks?

> TIA!  - Craig

> Here's my code:

> Private Sub Import_Click()
> On Error GoTo Err_Import_Click
>     Dim Confirm, ProcID
>     ProcID = Shell("c:\projects\import\import.exe", 1)

> ' **** Needs a PAUSE here! ****

>     Confirm = MsgBox("Process This File into Database?", 1, "Confirm")
>     If Confirm = vbYes Then
>         DoCmd.TransferText acImportDelim, , "Import1",
> "c:\projects\import\info1.txt", -1
>         Else: Exit Sub
>     End If

> Exit_Import_Click:
>     Exit Sub

> Err_Import_Click:
>     MsgBox Err.Description
>     Resume Exit_Import_Click

> End Sub



Sun, 31 Oct 1999 03:00:00 GMT  
 Need a pause when calling an external program!

Jeff,

Thanks for the help.  It's all good now!

- Craig

Quote:

> While I can't quote you the number of the article in the kb.  I got
> this
> code to call an external exe and wait until it's finished.  This is
> for a
> 32 bit app, There are several articles on How to determine if a
> Shelled
> Application is terminated in the kb.



Mon, 01 Nov 1999 03:00:00 GMT  
 
 [ 3 post ] 

 Relevant Pages 

1. call external program from vb application

2. calling up a outlook contact from external program

3. Calling an external program (and waiting until it's finished)

4. calling external program with extracted shape data

5. Call an external program

6. Call external program

7. Calling an external Program from VB6 with Parameters

8. calling external .exe program from VB

9. Newbie: Help with calling an external EXE program

10. Call external program and get results?

11. how to call an external program ?

12. How to call external programs

 

 
Powered by phpBB® Forum Software