Ouvrir fenetre sans mettre en pause et toujours au premier-plan

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
simj
Niveau 1
Niveau 1
Messages : 2
Enregistré le : lun. 25 avr. 2016 17:44
Status : Hors ligne

Ouvrir fenetre sans mettre en pause et toujours au premier-plan

#1

Message par simj »

Bonjour,
Je poste ce message, car dans le cadre d'un programme que je réalise, je veux ouvrir une fenêtre (venant de n'importe quel logiciel), qui soit et reste toujours au premier-plan jusqu'à sa fermeture, et qui ne mette pas en pause le reste du programme.
De plus, je veux pouvoir la dimensionner et la placer ou je veux.

Ainsi, j'ai utilisé l'UDF ExtMsgBox qui m'as permis de faire à peu près tout ce que je voulais, sauf que cela mettait en pause le programme. Après recherches, je n'ai pas trouvé la solution à ce problème et c'est pourquoi je vous demande de l'aide.

Je suis plutôt un débutant dans l'utilisation d'autoit, veuillez m'excuser si la solution vous parait évidente.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: Ouvrir fenetre sans mettre en pause et toujours au premier-plan

#2

Message par mikell »

L'udf ExtMsgbox crée une msgbox personnalisée qui fait son boulot de msgbox (mettre le script en pause dans l'attente d'une réponse) grâce à une boucle While intégrée
Ce qu'il te faut c'est une gui standard construite selon tes besoins et avec l'attribut "topmost"

ça veut dire quoi "venant de n'importe quel logiciel" ?
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
simj
Niveau 1
Niveau 1
Messages : 2
Enregistré le : lun. 25 avr. 2016 17:44
Status : Hors ligne

Re: Ouvrir fenetre sans mettre en pause et toujours au premier-plan

#3

Message par simj »

Bonjour ,
Quand je dis n'importe que logiciel, je voulais simplement dire que ce n'était pas obligatoirement une fenêtre de MsgBox que je voulais ouvrir, donc la solution d'une GUi peut très bien faire mon affaire. comme je ne m'y connais pas du tout en GUI, je vais me documenter, et je répondrais à ce sujet si je nécessite votre aide.
Merci de ta réponse :)
Avatar du membre
Numeric
Niveau 5
Niveau 5
Messages : 132
Enregistré le : mer. 23 mars 2016 08:17
Status : Hors ligne

Re: Ouvrir fenetre sans mettre en pause et toujours au premier-plan

#4

Message par Numeric »

juste une idée sur :
-GUI toujours au premier plan
-GUI contrôle dimensionnel
-(Paramètre et fonction)

Code : Tout sélectionner

#cs ----------------------------------------------------------------------------

 AutoIt Version : 3.3.14.2
 Auteur:         Numeric

 Fonction du Script : Model gui en Top Mode avec fonction en parametre
	Modèle de Script AutoIt.

#ce ----------------------------------------------------------------------------

_GuiPersonally(Default,Default,Default,True)

Func _GuiPersonally($GuiName = Default, $Gui_Width = Default, $Gui_Height = Default, $TopMode = False,
$Add_Func ='')
	#include-once
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
	Local $Gui_Vu, $Gui_State, $Ma_Func

	If $GuiName = Default Then $GuiName = 'Interface Graphique' ;Nom par defaut de ma GUI
	If $Gui_Width = Default Then $Gui_Width = 650
	If $Gui_Height = Default Then $Gui_Height = 650

	;Option pour GUI toujours au premier plan : $TopMode
	If $TopMode = False Then
		$TopMode ='' ;Vu par defaut
	Else
		$TopMode =  BitOR($WS_EX_TOPMOST,$WS_EX_WINDOWEDGE)
	EndIf; End if $TopMode = False

	;	Application des options: Resize mode, Top Mode
	$Gui_Vu = GUICreate($GuiName,$Gui_Width, $Gui_Height,-1,-1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX,$WS_THICKFRAME,$WS_TABSTOP),$TopMode)
	GUISetState(@SW_SHOW,$Gui_Vu)

	;Possibilité d'ajouter une action, un controle, etc grace au parametre $Add_Func
	If $Add_Func <>'' Then
		If IsFunc($Add_Func) Then
			Execute($Add_Func) ;Execution de la fonction utilisateur
		Else
			MsgBox(16,'Error','Invalid Function',3)
			Return SetError(-1,-1,-1)
		EndIf ;End===>If isFunc
	EndIf ;End===>If $Add_Func <>''

	While 2
		$MyMsg = GUIGetMsg( )
		Switch $MyMsg
			Case $GUI_EVENT_CLOSE
				ExitLoop
		EndSwitch
	WEnd

EndFunc;=======> _GuiPersonally

De 0 et 1 vers les étoiles , tout part du Binaire, Numeric
Répondre