Bonjour,
Dans notre application, on utilise le WDOptimiseur en ligne de commande comme ceci :
ExeRun(CompleteDir(fCurrentDir()) + "WDOptimiseur.EXE /Fic=" + psDataDir + " /option=4 /Sauve=Non", exeActive, exeWait)
et ca fonctionne très bien.
C'est juste qu'a la fin de l'optimisation, il y a une boîte d'info qui dit :
Citation :
L'optimisation des fichiers contenus dans le répertoire
'N:\Net3F\SMS_CL\Data' s'est terminée correctement.
Vue qu'il faut que j'attendre la fin de l'exécution de
WDOptimiseur.exe avant de continuer mon code, il faut que quelqu'un reste devant l'écran et appuit sur le bouton [OK].
En WinDev 7.5, j'utilisais la procédure suivante qui était lancer dans un thread apart pour simuler le clique sur le bouton [OK]
//Procédure pour traper les message envoyer par WDOptimiseur
PROCEDURE WaitForMsgWDO()
nHandle is int
nHandleBtn is int
LOOP
IF fbEndThread THEN BREAK
//Voir s'il ya une fenètre qui a WDOptimiseur comme titre
nHandle = SysFenHandle("WDOptimiseur")
IF nHandle <> Null THEN
IF SysValidHandle(nHandle) THEN
SysWinActive(nHandle)
//Voir si dans la fenêtre il y a une bouton OK
nHandleBtn = API("USER32", "FindWindowExA", nHandle, 0, "", "OK")
IF nHandleBtn <> Null THEN
//Si oui on simule le clic gauche
SendMessage(nHandleBtn, 513, 0, 0) //LEFt MOUSE DOWN
SendMessage(nHandleBtn, 514, 0, 0) //LEFT MOUSE UP
END
END
ELSE
//VOIR POUR LES ANGLOPHONES
nHandle = SysWinHandle("WDOptimizer")
IF nHandle <> Null THEN
IF SysValidHandle(nHandle) THEN
SysWinActive(nHandle)
//Voir si dans la fenêtre il y a une bouton OK
nHandleBtn = API("USER32", "FindWindowExA", nHandle, 0, 0, "OK")
IF nHandleBtn <> Null THEN
//Si oui on simule le clic gauche
SendMessage(nHandleBtn, 513, 0, 0) //LEFt MOUSE DOWN
SendMessage(nHandleBtn, 514, 0, 0) //LEFT MOUSE UP
END
END
END
END
Multitask(-100)
END
Le problème que j'ai, c'est qu'en Windev8, la boîte d'info qui
apparaît, n'a plus de Titre (WDOptimiseur) comme en WD75.
j'ai donc essayé avec cette commande:
nHandle = SysFenHandle("")
au lieu de
nHandle = SysFenHandle("WDOptimiseur")
mais ca ne fonctionne pas non plus.
Est-ce qu'il ya quelqu'on qui aurait une idée pour faire fermer cette
fenêtre.
Merci de vos réponse