DELPHI Comment faire un fullscreen d'une application externe (handle)?

DELPHI Comment faire un fullscreen d'une application externe (handle)? - Delphi/Pascal - Programmation

Marsh Posté le 22-05-2002 à 20:07:09    

Comment faire un full screen d'une application externe à l'aide de son handle (que j'ai déja [le handle]) ?  
Sachant que sa dimension et de 640*480 et que c'est une jeu.  
Et que je ne veux pas voire sa barre de titre ni ses bords à l'ecran.  
sendmessage(handle, ?, ?, ?);? ou autre chose ? help

Reply

Marsh Posté le 22-05-2002 à 20:07:09   

Reply

Marsh Posté le 22-05-2002 à 21:41:54    

Handle d'application ... je crois plutot que tu veux parler d'un handle sur la fenetre de cette application.
Eh bien ... savoir si cette application utilise directX / OGL pourrait être utile (quoique ...:))
Mais ce qui est à peut près certain c'est que ton jeux va rester en 640*480. Donc voici une petite suggestion, ca vaut ce que ca vaut :
tu bouges la fenetre en 0,0
tu bascules la résolution de Windows en 640*480
tu met en topmost, vire la barre des taches.
 
Tu vois le truc ;)
 
Parce que ne reve pas : bidouiller la fenetre pour la rendre maximisable et la maximiser ne changera rien : t'aura juste un carre de 640*480 en haut à gauche ...
Pour virer la barre des titres, regarde du cote de SetWindowLong avec GWL_STYLE (change le style en WS_POPUP par exemple ...)


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 23-05-2002 à 01:26:58    

HelloWorld a écrit a écrit :

Handle d'application ... je crois plutot que tu veux parler d'un handle sur la fenetre de cette application.
Eh bien ... savoir si cette application utilise directX / OGL pourrait être utile (quoique ...:))
Mais ce qui est à peut près certain c'est que ton jeux va rester en 640*480. Donc voici une petite suggestion, ca vaut ce que ca vaut :
tu bouges la fenetre en 0,0
tu bascules la résolution de Windows en 640*480
tu met en topmost, vire la barre des taches.
 
Tu vois le truc ;)
 
Parce que ne reve pas : bidouiller la fenetre pour la rendre maximisable et la maximiser ne changera rien : t'aura juste un carre de 640*480 en haut à gauche ...
Pour virer la barre des titres, regarde du cote de SetWindowLong avec GWL_STYLE (change le style en WS_POPUP par exemple ...)  




 
 
Je veux juste que lecran s'adapte au jeu
Direct X pour te repondre a ta question
 
Sinon le truc du [0;0], jai fait ca, mais, il reste la barre de titre et les bords..
je vais essayer ta commande:
SetWindowLong(handle,GWL_STYLE,WS_POPUP);
Et je confirme si ca marche.

Reply

Marsh Posté le 23-05-2002 à 01:33:09    

LONG SetWindowLong(
 
    HWND hWnd, // handle of window
    int nIndex, // offset of value to set
    LONG dwNewLong  // new value
   );
 
C peut etre moi, mais ca marche pas :'(
Faut t'il declarer quelque chose ? :(

Reply

Marsh Posté le 23-05-2002 à 02:22:05    

var cx,cy:integer;
begin
SetWindowLong(handle, GWL_STYLE ,WS_VISIBLE or WS_POPUP or WS_TABSTOP); //or WS_HSCROLL)  ;:
cx := GetSystemMetrics(SM_CXSCREEN);
cy := GetSystemMetrics(SM_CYSCREEN);
SetWindowPos(handle,HWND_TOP,0,0,cx,cy,SWP_SHOWWIN
DOW);
application.ProcessMessages
 
Ca marche mieu maintenant :)
Il reste plus qu'a bloquer le ATL TAB et Cacher la barre de windows du bas et c fini :) (je vais chercher...)

Reply

Marsh Posté le 23-05-2002 à 14:48:34    

Slide a écrit a écrit :

var cx,cy:integer;
Il reste plus qu'a bloquer le ATL TAB et Cacher la barre de windows du bas et c fini :) (je vais chercher...)  




 
ShowWindow(FindWindow('Shell_TrayWnd',
nil),SW_RESTORE);
//et
ShowWindow(FindWindow('Shell_TrayWnd',
nil),SW_HIDE);
 
Pour effacer la barre de tache et la faire revenir :)
Dite, quelqu'un serai pour ALT TAB ?

Reply

Marsh Posté le 23-05-2002 à 15:09:39    

Slide a écrit a écrit :

 
Pour effacer la barre de tache et la faire revenir :)
Dite, quelqu'un serai pour ALT TAB ?  




 
Google Power :)
 
Dummy := 0;//integer
 {this line will disable ALT-TAB}
SystemParametersInfo( SPI_SETFASTTASKSWITCH, 1, @Dummy, 0);
 {this line will disable CTRL-ALT-DEL}
SystemParametersInfo( SPI_SCREENSAVERRUNNING, 1, @Dummy, 0);
 
Pour reactiver :
SystemParametersInfo( SPI_SETFASTTASKSWITCH, 0, @Dummy, 0);
SystemParametersInfo( SPI_SCREENSAVERRUNNING, 0, @Dummy, 0);

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed