Hit-Parade .VB Research Center . Compteur
Accueil ~  Code ~  Programmes ~  Api ~  Forum ~  Cours ~  Livres ~  Quiz ~  Annuaire
~ Edito ~
12/03/2006 @ 13:39
Depuis la dernière mise à jour (qui remonte à... oulala plusieurs mois), un petit ménage de printemps s'impose. Ca tombe bien, c'est presque la période.
Au menu, et progressivement sur les jours à venir, rafraîchissement de plusieurs fonctions et procédures, nouvelles APIs et nouveaux programmes.

~ Rechercher ~

  

~ Annuaire VB ~
 Rechercher un site :
  

~ Partenaires ~

Fonction : ShellWait
Lancer une application et attendre la fin de son exécution.
(Consulté 23079 fois.)

' Déclaration des API
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 Declare Function
GetExitCodeProcess Lib "kernel32" ( _
       
ByVal hProcess As Long, lpExitCode As Long) As Long

' Déclaration des constantes
Private Const NORMAL_PRIORITY_CLASS = &H20&
Private Const INFINITE = -1&

' Déclaration de types
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

Public Function
ShellWait(stShell As String) As Long
' La fonction lance une application externe et attend qu'elle se termine
Dim tpiProc As PROCESS_INFORMATION
Dim tsiStart As STARTUPINFO
Dim lgRet As Long
' Initialisation de la structure STARTUPINFO
tsiStart.cb = Len(tsiStart)
' Lance l'application
lgRet = CreateProcessA(0, stShell, 0, 0, 1, NORMAL_PRIORITY_CLASS, 0, 0, _
                       tsiStart, tpiProc)
' Attend la fin du shell
lgRet = WaitForSingleObject(tpiProc.hProcess, INFINITE)
Call GetExitCodeProcess(tpiProc.hProcess, lgRet)
Call CloseHandle(tpiProc.hProcess)
ShellWait = lgRet
End Function
Visual Basic Research Center - (c) 2000/2002 -  Webmaster : docvb (chez) free (point) fr