1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| Private Sub Signer_Click()
Dim CheminSignature, CheminModèle
Dim fso As FileSystemObject
Dim lhProcess As Long
Dim lProcessID As Long
Dim lpExitCode As Long
Dim ExPgm
If Me.Montant = 0 Then
MsgBox "Le montant est à zéro", vbCritical
Exit Sub
End If
Me.Signature.Picture = "(aucune)"
'copier le modèle
Set fso = New FileSystemObject
CheminModèle = CurrentProject.Path & "\IMAGES\PourSigner.bmp"
CheminSignature = CurrentProject.Path & "\SIGNATURES\" & Me.N° & ".bmp"
fso.CopyFile CheminModèle, CheminSignature
Set fso = Nothing
'Ouvrir MsPaint et contrôler sa fin
'--(code récupéré dans FAQ)--------
lProcessID = Shell("mspaint.exe " & CheminSignature, vbMaximizedFocus)
'Ouverture d'un processus sur le programme ouvert + récupération du handle du processus
'La récupération du handle est nécessaire pour obtenir des informations sur celui-ci
lhProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, lProcessID)
'Boucle tant que la variable lpExitCode <> STATUS_PENDING (&H103&)
Do
'Récupération du code de sortie du processus
'Si programme ouvert -> la variable lpExitCode = STATUS_PENDING
'Sinon -> la variable lpExitCode = 0. Donc fin de la boucle
Call GetExitCodeProcess(lhProcess, lpExitCode)
DoEvents
Loop While lpExitCode = STATUS_PENDING
Call CloseHandle(lhProcess) 'Ferme le handle du processus
'Mettre le formulaire à jour
Me.Signature.Picture = CheminSignature
End Sub |
Partager