DELPHI Comment faire un fullscreen d'une application externe (handle)? - Delphi/Pascal - Programmation
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 ...) 
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. 
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 ?  
 
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...)
 (je vais chercher...) 
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 ? 
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); 
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