cs_cyber37
Messages postés110Date d'inscriptionmardi 25 octobre 2005StatutMembreDernière intervention19 novembre 2010
-
5 mai 2007 à 11:22
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 2014
-
7 mai 2007 à 09:34
Bonjours,
cette question a deja ete poser sur le forum les reponses marchent mais pas pour se que je veut faire donc je vais vous poser la question en presisent le probleme
alors voila deja sur le forum j'ai trouver 2 technique pour que l'application reste au premier plan :
la premiere :
on vas dans la propriete formstyle de la form et on met fsStayOnTop
la deuxieme :
on marque
SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);
dans oncreate de la form
c'est 2 technique fonctionnent mais elle ne fonctionne pas pour les jeux par exemple car moi je voudrais savoir comment on fait pour que sa reste au premier plan meme quand on est sur un jeu (exemple que sa fasse comme XFIRE (c'est un programe de chat et quand on resoit un message une fenetre transparente s'affiche sur le cote droit ....) et sa marche sur tout les jeux xfire donc moi je veut faire une application qui reste au premier plan meme dans les jeux donc existe t'il en delphi une technique pour que sa reste au premier plan meme si on joue a un jeu ?
mighty_warrior
Messages postés123Date d'inscriptionlundi 12 juin 2006StatutMembreDernière intervention 9 février 2010 5 mai 2007 à 14:00
ben moi j'ai bien un bout de code perméttant a une appli de rester au 1er plan mais je doute que ça marche pour les jeux.
car certains jeux restent au 1er plan quoiqu'il arrive.
Mais comme on ne sait jamais voici le code (a placer dans un timer cadencé a 10ms):
var handle:thandle;
Proc,Nous:Integer;
begin Proc:=GetWindowThreadProcessId(GetForeGroundWindow);
Nous:=GetCurrentThreadID;
ShowWindow(Note.Handle, sw_show);
If Proc<>Nous Then begin
handle:=Note.Handle ;
SetWindowPos(handle, HWND_TOPMOST, 0, 0, 0, 0,
SWP_NOMOVE or SWP_NOSIZE );
end;
florenth
Messages postés1023Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention17 août 20083 5 mai 2007 à 14:29
Salut,
Et pourquoi ne pas désactiver l'atttribut HWND_TOPMOST de la fenetre du jeu ?
Car en effet, si tu as deux fenetre qui doivent rester au prmier plan, Windows ne sait pas laquelle prendre: ce sera la fenetre active qui le sera.
cs_cyber37
Messages postés110Date d'inscriptionmardi 25 octobre 2005StatutMembreDernière intervention19 novembre 2010 5 mai 2007 à 14:40
je vais essailler avec la reponse de mighty et pour celle de florenth comment on fait pour desactiver l'attribut HWND_TOPMOST du jeu ? enfin sa se regle ou ?
cs_cyber37
Messages postés110Date d'inscriptionmardi 25 octobre 2005StatutMembreDernière intervention19 novembre 2010 5 mai 2007 à 18:39
en faite j'ai mis sa dans ONCREAT de la form et la form a la propriete formstyle sur stayontop et sa ne marche toujours pas es ce que j'ai louper une etape ? pourtant le programe dans la bare des tache se nome Swat4 et dans le gestionnaire des taches pareil
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 7 mai 2007 à 09:34
Salut,
lol, ça me rappel une question assez récente qui traite aussi de qqch qui marche... Sauf pour les jeux.
Encore une fois, les jeux ne sont pas des applications win32 bien sages.
Par exemple, pour une appli DirectX, on ne fait pas qu'appeler CreateWindow : on crée ensuite un device pour cette fenêtre. Et il se trouve que pas mal de paramètre de cette fenêtre sont entrés à ce moment là.
Ici, par exemple, on remarque le champ BOOL Windowed...
D'autre part, le positionnement d'une fenêtre sur une fenêtre en plein rendu DirectX a souvent des conséquences plus que facheuses en terme de frame rate (En tout cas sur les cartes type ATI X300). Le jeu devient tout saccadé.