[R] Forcer une fenetre à ce mettre en arrière plan

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
captainfranki
Niveau 1
Niveau 1
Messages : 13
Enregistré le : mar. 26 juil. 2011 17:04
Status : Hors ligne

[R] Forcer une fenetre à ce mettre en arrière plan

#1

Message par captainfranki »

Bonjour !

Je cherche actuellement à modifier les propriétés d'une fenêtre (qui n'est pas créer en autoit, enfin je ne pense pas :p) pour la forcer à rester TOUJOURS en arrière plan.
Après une rapide recherche sur google pour le faire via Windows, n'ayant pas trouvé de réponse je me tourne vers autoit qui me semble pouvoir faire cela ? (Sans savoir malheureusement comment faire ^^)

Aurriez-vous une piste à me proposer ou est-ce impossible ?
Merci !
Modifié en dernier par captainfranki le jeu. 09 févr. 2012 22:34, modifié 1 fois.
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Forcer une fenetre à ce mettre en arrière plan

#2

Message par TommyDDR »

Pour la rendre TOUJOURS en arrière plan, je ne vois pas comment faire, je ne pense pas que ça soir possible à moins de passer toutes les autres en TOPMOST mais là... c'est du code de sauvage ^^.

Pour envoyer une fenêtre en arrière plan :

Code : Tout sélectionner

#include <Constants.au3>
#include <WinAPI.au3>

_WinAPI_SetWindowPos($Gui, $HWND_BOTTOM, -1, -1, -1, -1, BitOR($SWP_NOMOVE, $SWP_NOSIZE))
$HWND_BOTTOM = envoi la fenêtre en arrière plan
les -1 indiquent les nouvelles positions / tailles
mais on ne veut pas bouger donc BitOR($SWP_NOMOVE, $SWP_NOSIZE) qui indiquent qu'il ne faut pas tenir compte de la nouvelle position et taille.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Forcer une fenetre à ce mettre en arrière plan

#3

Message par mikell »

TommyDDR a écrit :Pour la rendre TOUJOURS en arrière plan, je ne vois pas comment faire
Qqe chose comme ça ne marcherait pas ?

Code : Tout sélectionner

GUIRegisterMsg($WM_ACTIVATE, "_bottom")

Func _bottom($hWnd, $msg, $wParam, $lParam)
_WinAPI_SetWindowPos($Gui, $HWND_BOTTOM, -1, -1, -1, -1, BitOR($SWP_NOMOVE, $SWP_NOSIZE))
Return $GUI_RUNDEFMSG
EndFunc
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Forcer une fenetre à ce mettre en arrière plan

#4

Message par TommyDDR »

J'entendais par "TOUJOURS" sans actions supplémentaires.

Et de toutes manières, il précise plus haut que ce n'est pas une de ses fenêtres (Donc pas de GUIRegisterMsg possible ^^)
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Forcer une fenetre à ce mettre en arrière plan

#5

Message par mikell »

Bourrin certes mais ça marche Image

Code : Tout sélectionner

#Include <WinAPI.au3>
#include <Constants.au3>
Opt("WinTitleMatchMode", -2)

$hW = WinGetHandle("firefox") 
While 1
_WinAPI_SetWindowPos($hW, $HWND_BOTTOM, -1, -1, -1, -1, BitOR($SWP_NOMOVE, $SWP_NOSIZE))
Wend
Marrant, la fenêtre reste dessous mais elle reste active :shock:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
Jerome
Niveau 9
Niveau 9
Messages : 661
Enregistré le : mar. 07 avr. 2009 08:35
Localisation : Picardie
Status : Hors ligne

Re: [..] Forcer une fenetre à ce mettre en arrière plan

#6

Message par Jerome »

Coucou,


Si votre but est de ne plus voir la fenêtre en question, alors la fonction WinSetState est la.



Jérôme
captainfranki
Niveau 1
Niveau 1
Messages : 13
Enregistré le : mar. 26 juil. 2011 17:04
Status : Hors ligne

Re: [..] Forcer une fenetre à ce mettre en arrière plan

#7

Message par captainfranki »

Bonjour !

Je vous REMERCIE de vos réponses,
j'avais effectivement essayer le WinSetState mais cela ne fonctionner pas (la fenetre réaparaisser ...).
Mais avec le script de mikell tout fonctionne parfaitement !

Merci à vous !
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Forcer une fenetre à ce mettre en arrière plan

#8

Message par Tlem »

N'oubliez pas la balise [R] dans le titre de votre premier message si votre sujet est résolu.

Profitez en pour faire quelques efforts sur l'orthographe.

Merci
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Forcer une fenetre à ce mettre en arrière plan

#9

Message par TommyDDR »

@Mikel : la fenêtre est juste envoyé en arrière plan, elle ne perd pas le focus

@captainfranki : Si vous utilisez le script de mikell, insérez y au moins un sleep dans la boucle.

PS : Cette méthode n'est pas digne d'un programmeur ;)
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Répondre