Page 1 sur 1
[R] Interface devant les autres mais sans le focus
Posté : mar. 28 déc. 2010 16:15
par matheod
Bonjour,
J'aimerais savoir si il est possible de faire en sorte que l'interface de notre application soit devant les autres, mais sans quel prenne le focus, autrement dit, que la fenetre s'affiche mais qu'elle soit inexistante au niveau de la souris.
En gros si l'on clic sur notre application ca cliquera juste en dessous de l'application.
Merci
Bonne journée
Re: [..] Interface devant les autres mais sans le focus
Posté : mar. 28 déc. 2010 18:24
par zeshrek
En 1 mot : Oui !
Voir les styles associés a GUICreate
Re: [..] Interface devant les autres mais sans le focus
Posté : mar. 28 déc. 2010 18:28
par matheod
Justement, j'ai cherché à ce niveau là et je n'ai pas trouvé.
Re: [..] Interface devant les autres mais sans le focus
Posté : mar. 28 déc. 2010 19:15
par zeshrek
Et pourtant, c'est bien là. Allez, un petit indice le style a appliquer, c'est l'antépénultième*.
* Ce mot là, j'aurai jamais cru le placer sur un forum informatique !
Re: [..] Interface devant les autres mais sans le focus
Posté : mar. 28 déc. 2010 21:14
par Colin117
l'antépénultième, c'est pas l'avant dernier ? ou celui d'avant encore je sais plus xD. (oui je flood je sais je sort

)
@EDIT@
J'avais pas envie de flooder d'avantage, zeshrek ENORME ce lien O.O
Re: [..] Interface devant les autres mais sans le focus
Posté : mer. 29 déc. 2010 10:49
par zeshrek
Plus d'infos
ICI
(a floodeur, floodeur et demi

)
Re: [..] Interface devant les autres mais sans le focus
Posté : sam. 01 janv. 2011 17:15
par matheod
Tu pensais à quel style ?
Car j'ai testé tout les styles positionnés en avant dernier et aucun n'a fait ce que je voulais.
Re: [..] Interface devant les autres mais sans le focus
Posté : sam. 01 janv. 2011 17:35
par zeshrek
Bah c'est normal, l'antépénultième c'est pas l'avant dernier, mais celui d'avant !
Par contre, je me met publiquement une grosse baffe sur mon groin d'ogre, parceque je t'orientais a tort sur $DS_MODALFRAME qui n'a rien a voir avec ta demande).
Ceci dit, je ne crois pas qu'il soit possible de faire une GUI qui soit affichée mais qui quand tu cliques transmet le clic a la fenetre d'en dessous.
Re: [..] Interface devant les autres mais sans le focus
Posté : dim. 02 janv. 2011 09:32
par SagePourpre
C'est très possible...
En voici un exemple.
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <Constants.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>
Opt('WinWaitDelay',0) ; Important afin de minimiser le délai d'opération
$gui = GUICreate('Meh !', 300, 300, -1, -1)
$active = WinGetHandle('[ACTIVE]') ; On récupère la fenêtre active
GUISetState() ; La fenêtre de ton application vole le focus
WinActivate($active) ; Le focus est redonné à la fenêtre qui avait le focus juste avant
GhostWin($gui, 100) ; La fonction qui t'intéresse
Sleep(4000)
GhostWin($gui)
Sleep(3000)
; Crée une fenêtre OnTop avec un niveau de transparence qui laisse passer la souris au travers.
; $trans : 0-255 0 = invisible 255 = opaque ( l'attribut OnTop est également désactivé)
Func GhostWin($hWnd, $trans = 255)
Select
Case $trans = 255
WinSetOnTop($hWnd, "", 0)
WinSetTrans($hWnd, "", $trans) ; No transparency
_WinAPI_SetWindowLong($hWnd, $GWL_EXSTYLE, _
BitAND(_WinAPI_GetWindowLong($hWnd, $GWL_EXSTYLE), BitNOT($WS_EX_TRANSPARENT)))
Case Else
WinSetOnTop($hWnd,'',1)
WinSetTrans($gui, "", $trans)
_WinAPI_SetWindowLong($gui, $GWL_EXSTYLE, _
BitOR(_WinAPI_GetWindowLong($gui, $GWL_EXSTYLE), $WS_EX_TRANSPARENT))
EndSelect
EndFunc ;==>GhostWin
Re: [..] Interface devant les autres mais sans le focus
Posté : lun. 03 janv. 2011 21:07
par matheod
Oh merci beaucoup !
Mon sauveur ^^
Merci à tous ceux qui ont répondu à mon topic
