Detection d'un fin application

  • Initiateur de la discussion Norbs
  • Date de début
N

Norbs

Guest
J'ai un soucis dans une macro .
Dans cette macro je lance une appli dos dont je ne possede pas le source , le probleme est que je ne sais pas quand il as finit , j'aimaerias savoir s'il y as une sol pour determiner que l'appli dos est finit ?

Merci de vos reponses..

A+
ASN
 

Creepy

XLDnaute Accro
Hello le Forum, Norbs,

Au tout debut du code tu mets ca :
Code:
Private Declare Function OpenProcess Lib 'kernel32' _
  (ByVal dwDesiredAccess As Long, _
   ByVal bInheritHandle As Long, _
   ByVal dwProcessId As Long) As Long
   
Private Declare Function WaitForSingleObject Lib 'kernel32' _
  (ByVal hHandle As Long, _
   ByVal dwMilliseconds As Long) As Long
   
Private Declare Function CloseHandle Lib 'kernel32' _
  (ByVal hObject As Long) As Long

Ensuite tu tapes cette procédure.
Code:
Sub CheckEndOfCompress() ' Procédure trouvée sur le net !
Dim hProcess As Long
   hProcess = OpenProcess(SYNCHRONIZE, True, TaskId)
   Call WaitForSingleObject(hProcess, WAIT_INFINITE)
   CloseHandle hProcess
End Sub

Pour lancer ton appli tu fais par exemple quelque chose comme ca:

TaskId = Shell(Chemin & Compresseur & ' -min -a ' & CheminSave & FichierZip & ' ' & CheminSave & FichierSave)
call CheckEndOfCompress

Cette procédure ne rendra la main au code qu'après que ton application ait fini !

Ca parait un peu compliqué mais non, mais je peux difficillement joindre un exemple. Pour plus de detai ltu peux regarder mon fichier Zip-to-Xld dans la rubriques XLD goodies dans la zone Telechargement.

++

Creepy
 

Discussions similaires

Réponses
4
Affichages
563

Statistiques des forums

Discussions
312 472
Messages
2 088 710
Membres
103 929
dernier inscrit
Tangerine9