How to Determine When a Shelled 32-bit Process Has Terminated 
Author Message
 How to Determine When a Shelled 32-bit Process Has Terminated

hi all

        Why   ExecCmd  subroute  parameter change to "pbrush.exe" .
        the msgbox not wait pbrush.exe Terminated than show ?

Refer:MSDN VBKB  Q129796

   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&

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

      ' 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

3. Add the following code the Form_Click() event procedure of Form1:

   Sub Form_Click ()
 '     ExecCmd "notepad.exe"
     ExecCmd   "pbrush.exe"           'No wait  pbrush.exe Terminated then
show
      MsgBox "Process Finished"
   End Sub

----------------------------------

  Minan Lane    CCA
----------------------------------



Mon, 09 Aug 1999 03:00:00 GMT  
 
 [ 1 post ] 

 Relevant Pages 

1. How a 32-Bit App Can Determine When a Shelled Process Ends, Article ID: Q129796

2. How a 32-Bit App Can Determine When a Shelled Process Ends

3. How a 32-Bit APP can Determine When a Shelled Process Ends - Q129796

4. Help: How a 32-Bit app can determine when a shelled process ends

5. Waiting for a shell process to finish in 32 bit environment

6. How to detect (by EXE name) if a non-shelled process is running (32-bit)

7. HELP: How-to determine if 32-bit shelled app is finished

8. How to detect (by EXE name) if a non-shelled process is running (32-bit)

9. How to Determine When a Shelled Process has Terminated

10. How to Determine When a Shelled Process Has Terminated

11. Determining when a shelled process has terminated = error

12. How to determine if Shelled process has terminated?

 

 
Powered by phpBB® Forum Software