Voila, j'ai un pb (... non sans déc) en VB.Net 2003 :
Je dispose d'une feuille principale MDI qui contient plusieurs feuilles enfants.
Mon programme les ferme automatiquement au bout d'un certain temps d'inactivité.
Pour fermer les feuilles enfants contenues dans ma feuille principale, pas de pb. Par contre, il peut arriver qu'une des feuilles enfants génère une MsgBox après une action de la part de l'utilisateur. Et la, si ce dernier part et ne revient pas (perdu sur le chemin du retour, rupture d'anevrisme...faut tout prévoir...) : ma fermeture automatique plante, car je détruits toutes les feuilles enfants, y compris celle qui a généré ma MsgBox! Et ca, VB.Net, il aime pas trop...
Auriez-vous une solution ?
Sachant que :
- J'ai essayé le SendKeys.Send pour envoyer a mon appli la touche ALT + N pour valider le bouton "NON" de ma MsgBox
- J'ai essayé le SendKeys.Send pour envoyer a mon appli la touche ECHAP pour valider le bouton "OK" de ma MsgBox
- Les boutons des mes MsgBox varient : un coup y a du VbYesNo, un coup du VbOK, un coup du VbYesCancel, etc...
Possibilité de remplacer MsgBox par Popup avec un timer.
Const TIMEOUT = 10
Set objShell = WScript.CreateObject("WScript.Shell")
Reponse = objShell.Popup(vbCrLf & _
"Ce Popup remplace un MsgBox" &vbCrLf&vbCrLf& "Sans action de votre part," &vbCrLf&vbCrLf&_
"ce popup s'effacera dans " &vbCrLf& TIMEOUT & " secondes" &vbCrLf&vbCrLf&_
"Vous ne pouvez pas fermer ce popup par la croix !!!" ,TIMEOUT, _
"MsgBox personnalisé",vbYesNo + vbQuestion)
Select Case Reponse
Case vbYes: objShell.Popup "Vous avez cliqué sur Oui" & vbCrLf & vbCrLf & vbCrLf,TIMEOUT
Case vbNo: objShell.Popup "Vous avez cliqué sur Non" & vbCrLf & vbCrLf & vbCrLf,TIMEOUT
Case -1: Wscript.Quit
End Select
Set objShell = Nothing
Sinon, essaye de prévoir un comportement par défaut, tu peux utiliser un attribut dont tu définit la valeur pour savoir si la fermeture est automatique ou manuelle.
Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)