Soyez le premier à donner votre avis sur cette source.
Snippet vu 36 244 fois - Téléchargée 36 fois
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 Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Private Const STILL_ACTIVE = &H103 Private Const PROCESS_QUERY_INFORMATION = &H400 Public Sub ShellWait(ByVal JobToDo As String) Dim hProcess As Long, RetVal As Long hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, Shell(JobToDo, vbMinimizedNoFocus)) Do GetExitCodeProcess hProcess, RetVal DoEvents Sleep 100 Loop While RetVal = STILL_ACTIVE End Sub
Sub ShellAndWait(PathName As String, _
Optional WindowsStyle As VbAppWinStyle = vbMinimizedFocus)
Dim ShellCmdPath As String
Dim FileNumber As Long
Dim template As String
Dim i As Integer
' Generate a temporary filename
i = 0
Do
ShellCmdPath = Hex(i) & ".bat"
i = i + 1
Loop While Len(Dir(ShellCmdPath)) > 0
' Prepare batch file content
template = "@echo off" & vbCrLf
' Action to execute
template = template & PathName & vbCrLf
' Remove created batch file when action has been executed
template = template & "del " & ShellCmdPath
' Create batch file
FileNumber = FreeFile
Open ShellCmdPath For Output As #FileNumber
Print #FileNumber, template
Close #FileNumber
' Execute batch file containing action
Shell ShellCmdPath, WindowsStyle
' Wait for asynchronous command to finish
While Len(Dir(ShellCmdPath)) > 0
DoEvents
Wend
End Sub
Thx pour cela, et sinon je m'en sers dans une appli pour un controle de raccourci de Jeu.
(Tu clique le programme charge l'image cd et lance l'executable, en clair ton jeu démarre sans avoir besoin de faire d'opérations chiantes.Et dans cela il sert à protéger contre la double-execution du jeu par simple bascule)
Bonne continuation.
Ton code m'a sauvé la vie ...
Surtout par sa facilité d'intégration
do
doevents
shellwait "notepad.exe"
loop
Comme sa on peut pas fermer le bloc-note ...
Tres bonne source je met 10/10
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.