Bonjour à tous,
Aujourd'hui j'aurai besoin encore de votre aide.
Je fais des scripts en autoit lpour des solutions ppour personne non voyante.
Souvent, je dois utiliser des Msgbox pour annoncer des messages, mais avec l'affichage par défaut, le texte contenu dans la fenêtre ne peut pas être lu par nos synthèses vocales.
Comme je ne m'y connais pas à fond dans la programmation, en me renseignant on m'a dit que le problème venait peut-être d'Autoit car des langages de programmations qui utilisent le système de msbbox natif de windows ne pposait pas ce problème.
Je cherche donc à savoir si autoit permet d'utiliser ce système pour fairre des fenêtrres?
J'ai vu les UDF winapi dans le dossier include mais je n'ai pas trouvé dans ces fichiers des descriptifs des fonctionnalités et ce qu'elles font.
Pourriez-vous m'aider et me dire si cela est possible?
Merci d'avance pour votre aide!!!
Modifier l'apparence d'une Msgbox
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
-
- Niveau 3
- Messages : 42
- Enregistré le : mar. 11 oct. 2022 16:14
- Status : Hors ligne
- walkson
- Modérateur
- Messages : 1036
- Enregistré le : ven. 12 août 2011 19:49
- Localisation : Hurepoix
- Status : Hors ligne
Re: Modifier l'apparence d'une Msgbox
Bonjour
Une Msgbox est une boite de dialogue Windows de class #32770, donc le problème ne vient pas d'Autoit
Il ne faut pas oublier que Msgbox est bloquant et en fonction de votre code, celui-ci est en attente
Regardez et modifiez le flag (première valeur) en $MB_SYSTEMMODAL ou $MB_TASKMODAL ou autres à tout hasard (voir l'aide)
Je vous mets un petit code qui utilise différentes boites à message faciles à utiliser
La fermeture de Msgbox entraîne la fermeture de toutes les fenêtres
Une Msgbox est une boite de dialogue Windows de class #32770, donc le problème ne vient pas d'Autoit
Il ne faut pas oublier que Msgbox est bloquant et en fonction de votre code, celui-ci est en attente
Regardez et modifiez le flag (première valeur) en $MB_SYSTEMMODAL ou $MB_TASKMODAL ou autres à tout hasard (voir l'aide)
Je vous mets un petit code qui utilise différentes boites à message faciles à utiliser
Code : Tout sélectionner
Form()
Sleep(1000)
ToolTip("message tooltip",150,300,"titre")
Sleep(1000)
SplashTextOn("Title", "Le message SplashText.", -1, 200, -1, 100, 4, "", 24)
Sleep(1000)
MsgBox(4096,"titre","message msgbox")
Func Form()
Global $Form1 = GUICreate("Titre", 235, 101, 214, 689)
Global $Label1 = GUICtrlCreateLabel("Message label", 16, 16, 200, 50)
GUISetState(@SW_SHOW)
EndFunc
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
-
- Niveau 3
- Messages : 42
- Enregistré le : mar. 11 oct. 2022 16:14
- Status : Hors ligne
Re: Modifier l'apparence d'une Msgbox
Rebonjour,
Bon, alors il faudra que j'explore de plus prêt ce problème car le flag systemmodal et taskmodal créent le même problème.
Le code SplashTextOn lit le message, il me faudrait la même chose mais où les utilisateurs puissent cliquer sur oui/non et qui ne disparaît pas.
Ou alors, y a-t-il un flag qui crée un champ en lecture seul avec un bouton oui et non où je peux metre mon message?
Merci
Bon, alors il faudra que j'explore de plus prêt ce problème car le flag systemmodal et taskmodal créent le même problème.
Le code SplashTextOn lit le message, il me faudrait la même chose mais où les utilisateurs puissent cliquer sur oui/non et qui ne disparaît pas.
Ou alors, y a-t-il un flag qui crée un champ en lecture seul avec un bouton oui et non où je peux metre mon message?
Merci
- walkson
- Modérateur
- Messages : 1036
- Enregistré le : ven. 12 août 2011 19:49
- Localisation : Hurepoix
- Status : Hors ligne
Re: Modifier l'apparence d'une Msgbox
A ma connaissance, on ne peut pas mettre des boutons sur SplashTextOn
La solution la plus simple serait celle-là
après il y a 
La solution la plus simple serait celle-là
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <MsgBoxConstants.au3>
Opt("GUIOnEventMode", 1)
Global $Form2
Global $Form1 = GUICreate("Form1", 615, 438, 192, 124)
GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
Global $Button1 = GUICtrlCreateButton("Message", 224, 344, 105, 41)
GUICtrlSetOnEvent(-1, "Button1Click")
GUISetState(@SW_SHOW)
While 1
Sleep(100)
WEnd
Func Button1Click()
_Main()
EndFunc
Func Form1Close()
Exit
EndFunc
Func _Main()
Local $idYes, $idNo
$Form2 = GUICreate("Custom MsgBox", 210, 80)
GUICtrlCreateLabel("MESSAGE" & @CRLF & "Please click a button!", 10, 10)
$idYes = GUICtrlCreateButton("Yes", 10, 50, 50, 20)
GUICtrlSetOnEvent($idYes, "OnYes")
$idNo = GUICtrlCreateButton("No", 80, 50, 50, 20)
GUICtrlSetOnEvent($idNo, "OnNo")
GUISetOnEvent($GUI_EVENT_CLOSE, "OnExit")
GUISetState() ; display the GUI
EndFunc ;==>_Main
; --------------- Functions ---------------
Func OnYes()
MsgBox($MB_SYSTEMMODAL, "You clicked on", "Yes")
OnExit()
EndFunc ;==>OnYes
Func OnNo()
MsgBox($MB_SYSTEMMODAL, "You clicked on", "No")
OnExit()
EndFunc ;==>OnNo
Func OnExit()
GUIDelete($Form2)
EndFunc ;==>OnExit
_WinAPI_MessageBoxIndirect($tMBP)
mais c'est toujours class #32770 donc 
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
-
- Niveau 3
- Messages : 42
- Enregistré le : mar. 11 oct. 2022 16:14
- Status : Hors ligne
Re: Modifier l'apparence d'une Msgbox
Bonjour,
Les codes proposés provoquent le même pproblème j'ai j'ai trouvé une solution alternative.
Tout d'abord j'ai fait un SplashTextOn qui annonce le texte, puis après j'ai fait une Msgbox où je mets mes boutons. Ça permet d'être au courant du message et de pouvoir cliqué sur les boutons après.
Merci pour votre aide qui m'a permis de découvrir la fonction SplashTextOn.
Cordialement
Les codes proposés provoquent le même pproblème j'ai j'ai trouvé une solution alternative.
Tout d'abord j'ai fait un SplashTextOn qui annonce le texte, puis après j'ai fait une Msgbox où je mets mes boutons. Ça permet d'être au courant du message et de pouvoir cliqué sur les boutons après.
Merci pour votre aide qui m'a permis de découvrir la fonction SplashTextOn.
Cordialement