[..] Gui Par dessus tout.

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Avatar du membre
Zippo
Niveau 6
Niveau 6
Messages : 243
Enregistré le : mar. 30 nov. 2010 12:50
Status : Hors ligne

[..] Gui Par dessus tout.

#1

Message par Zippo »

Salut tout le monde,
J'aimerais créer une gui fonctionnelle par dessus un jeu, en locurence Counter strike: source. J'aimerais faire apparaître une gui en plein jeu.

Merci d'avance :)
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11818
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Gui Par dessus tout.

#2

Message par Tlem »

Dans les propriétés étendue de votre GUI, utilisez WS_EX_TOPMOST.

Koda vous sera sans aucun doute très utile. ;)
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
Zippo
Niveau 6
Niveau 6
Messages : 243
Enregistré le : mar. 30 nov. 2010 12:50
Status : Hors ligne

Re: [..] Gui Par dessus tout.

#3

Message par Zippo »

Sa marche niquel pour les GUI ouvert sur le bureau ou autre mais pas dans un jeu pleine écran :(
Si quelqu'un à la solution.
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

Re: [..] Gui Par dessus tout.

#4

Message par zeshrek »

DS_MODALFRAME est ton ami alors
Si vis pacem para bellum
Avatar du membre
Zippo
Niveau 6
Niveau 6
Messages : 243
Enregistré le : mar. 30 nov. 2010 12:50
Status : Hors ligne

Re: [..] Gui Par dessus tout.

#5

Message par Zippo »

Non plus /:, Est-ce possible ?
leoueb
Niveau 1
Niveau 1
Messages : 5
Enregistré le : dim. 13 févr. 2011 21:00
Status : Hors ligne

Re: [..] Gui Par dessus tout.

#6

Message par leoueb »

Bonsoir,

Pour ma part j'utilise ce code
1) Je crée une GUI avec variable de handle nommé "$Wiz_Message". il faut donc remplacer dans l'exemple "$Wiz_Message" par le handle de ta propre GUI.
2) Si besoin j'appelle la fonction 'SetWindowPos'

Au passage une fonction récupérée sur ce précieux Forum.

Code : Tout sélectionner

#include <Constants.au3>

SetWindowPos($Wiz_Message, $HWND_TOPMOST + $HWND_TOP, 0, 0, 0, 0, BitOR($SWP_NOMOVE,$SWP_NOSIZE))

;--------------------------------------------------------------------------
; Passage de la fenêtre en Mode TOP
;--------------------------------------------------------------------------
Func SetWindowPos($hwnd, $InsertHwnd, $X, $Y, $cX, $cY, $uFlags)
    $ret = DllCall("user32.dll", "long", "SetWindowPos", "hwnd", $hwnd, "hwnd", $InsertHwnd, _
    "int", $X, "int", $Y, "int", $cX, "int", $cY, "long", $uFlags)
EndFunc
 
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] Gui Par dessus tout.

#7

Message par ani »

hihi, allez le mot clé est TOPMOST

voici de petit bout de code
le plus simple (1 pour mettre au premier plan 0 pour le retirer)

Code : Tout sélectionner

WinSetOnTop("[CLASS:SciTEWindow]", "", 1)
Msgbox(0,"","fenetre??")
+plus complexe :o

Code : Tout sélectionner

#include <Winapi.au3>
#include <Constants.au3>

Global $pRect = DllStructCreate($tagRect)
$win = WinGetHandle("[class:SciTEWindow]")
DLLCall("user32.dll","int","GetWindowRect", "hwnd", $win, "ptr",DllStructGetPtr($pRect))

MsgBox(0,"","Position:"&DllStructGetData($pRect,1) & ", "& DllStructGetData($pRect,2) & @LF & _
        "Taille:"&DllStructGetData($pRect,3)-DllStructGetData($pRect,1) & ", " & _
        DllStructGetData($pRect,4)-DllStructGetData($pRect,2) & @LF )

_WinAPI_SetWindowPos($win,$HWND_TOPMOST,DllStructGetData($pRect ,1),DllStructGetData($pRect ,2),DllStructGetData($pRect ,3)-DllStructGetData($pRect ,1),DllStructGetData($pRect ,4)-DllStructGetData($pRect ,2),$SWP_SHOWWINDOW)
;On vide la mémoire
$pRect = 0
        
Exit
y a bien d'autre manière ;) , allez une petite recherche :o
bon apprentissage et bonne continuation
overflow
Niveau 5
Niveau 5
Messages : 138
Enregistré le : sam. 05 déc. 2009 23:49
Status : Hors ligne

Re: [..] Gui Par dessus tout.

#8

Message par overflow »

Le TOP MOST ne passeras pas sur un jeu en plein-ecran
Avatar du membre
Zippo
Niveau 6
Niveau 6
Messages : 243
Enregistré le : mar. 30 nov. 2010 12:50
Status : Hors ligne

Re: [..] Gui Par dessus tout.

#9

Message par Zippo »

Merci leoueb, mais ta technique marche pas non plus. Par contre, (dans le jeu) si je clique à l'endroit de l'interface, je fais un magnifique retour Windows. Sa prouve que il y es mais on ne le voit pas.
Tandis que TopMost (merci any) il n'a pas cette effet d'être là sans être là. L'autre solution est la plus proche mais encore défectueuse /:
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] Gui Par dessus tout.

#10

Message par ani »

Comment récupére tu l'indice de l'interface ?

topmost = mettre en premier plan (always on top)
teste avec l'aide ("[class:HH Parent]")

voilà voilà
Avatar du membre
Zippo
Niveau 6
Niveau 6
Messages : 243
Enregistré le : mar. 30 nov. 2010 12:50
Status : Hors ligne

Re: [..] Gui Par dessus tout.

#11

Message par Zippo »

HHPARENT ?
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] Gui Par dessus tout.

#12

Message par ani »

nonnon :p cté pour tester le handle car avec scite on ne voit pas trop :(

donc tu le récupere comment ?

ps:tu as un outils normalement du nom de AU3info.exe "Autoit window info" , qui te permet de récuperer des info sur la fenêtre.

eedit:sinon passe par $WS_EX_APPWINDOW, çà le passera aussi au premier plan (force top-level)
Avatar du membre
Zippo
Niveau 6
Niveau 6
Messages : 243
Enregistré le : mar. 30 nov. 2010 12:50
Status : Hors ligne

Re: [..] Gui Par dessus tout.

#13

Message par Zippo »

Je le récupère avec wingethandle.
Avatar du membre
Zippo
Niveau 6
Niveau 6
Messages : 243
Enregistré le : mar. 30 nov. 2010 12:50
Status : Hors ligne

Re: [..] Gui Par dessus tout.

#14

Message par Zippo »

Oh! Autant pour moi, j'avais pas mis WinSetOnTop dans une boucle, à présent j'ai l'effet d'être là sans être là ^^
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] Gui Par dessus tout.

#15

Message par ani »

Donc ?
Avatar du membre
Zippo
Niveau 6
Niveau 6
Messages : 243
Enregistré le : mar. 30 nov. 2010 12:50
Status : Hors ligne

Re: [..] Gui Par dessus tout.

#16

Message par Zippo »

Bah... non :'(
leoueb
Niveau 1
Niveau 1
Messages : 5
Enregistré le : dim. 13 févr. 2011 21:00
Status : Hors ligne

Re: [..] Gui Par dessus tout.

#17

Message par leoueb »

Salut,
Et je une question bête.
Par hasard, as tu essayé en parallèle de mettre un "BOTTOM" de la fenêtre de ton jeu ?
Avatar du membre
Zippo
Niveau 6
Niveau 6
Messages : 243
Enregistré le : mar. 30 nov. 2010 12:50
Status : Hors ligne

Re: [..] Gui Par dessus tout.

#18

Message par Zippo »

Bah non, comment faire ?
leoueb
Niveau 1
Niveau 1
Messages : 5
Enregistré le : dim. 13 févr. 2011 21:00
Status : Hors ligne

Re: [..] Gui Par dessus tout.

#19

Message par leoueb »

Salut,

Je ne l'ai jamais fait, mais voici vers quel commande je chercherais :

1) Je récupère les infos de la fenêtre avec l'outils "AU3Info" fourni avec Autoit
2) J'irais d'abord voir la commande "WinSetOnTop" avec l'option "0" pour enlever le mode TOP de ton jeu.
3) J'irais également voir la commande "WinSetState" car avec cette commande tu peux faire :
@SW_HIDE = Hide window
@SW_SHOW = Shows a previously hidden window
@SW_MINIMIZE = Minimize window
@SW_MAXIMIZE = Maximize window

Voilà.
overflow
Niveau 5
Niveau 5
Messages : 138
Enregistré le : sam. 05 déc. 2009 23:49
Status : Hors ligne

Re: [..] Gui Par dessus tout.

#20

Message par overflow »

vous ne passerez pas au dessus un jeux en plein ecran
avec une simple gestion de fenetre

il te faudra t orienté vers les caractéristiques DIRECTX
fait une recherche sur "teamspeack overlay"
c est un prog qui ecrivait des infos par dessus un jeu en plein ecran
mais test sur des jeu solo chez toi car certain n aime pas ca le hook directx
Répondre