Page 1 sur 1

Console

Publié : ven. 07/mars/2008 11:03
par Pascal Vernie
Bonjour à tous
Est-il possible d'ouvrir la console directement en plein écran, je ne trouve pas d'astuce dans l'aide pour le faire.
Merci
Pascal

Re: Console

Publié : ven. 07/mars/2008 12:15
par Backup
Pascal Vernie a écrit :Bonjour à tous
Est-il possible d'ouvrir la console directement en plein écran, je ne trouve pas d'astuce dans l'aide pour le faire.
Merci
Pascal
ben avec les version ancienne de purebasic
il fallais utiliser cet Api

Code : Tout sélectionner

SetConsoleDisplayMode_(hOut, switch, @dwOldMode) 
mais il semble bien qu'elle est disparu l'Api en question 8O 8O

voici le code que j'avais

Code : Tout sélectionner

; German forum: http://robsite.de/php/pureboard/viewtopic.php?t=1390&highlight=
; Author: Rings
; Date: 17. June 2003

; Switch console to Full Screen Mode 
; Windows only
OpenConsole() 
dwOldMode=0 
Result=GetConsoleDisplayMode_(@dwOldMode) 
hOut=GetStdHandle_(#STD_OUTPUT_HANDLE) 
switch=1 
SetConsoleDisplayMode_(hOut, switch, @dwOldMode) 
ConsoleColor(14,3) 
ConsoleLocate(10,10) 
PrintN("FULL SCREENMODE !") 
Delay(5000) 
switch=0 
SetConsoleDisplayMode_(hOut, switch0, @dwOldMode) 
ClearConsole() 
ConsoleColor(10,2) 
ConsoleLocate(10,10) 
PrintN("Windowed MODE !") 
Delay(5000) 
CloseConsole() 
End 

; ExecutableFormat=Windows
; CursorPosition=5
; FirstLine=1
; EOF

Publié : ven. 07/mars/2008 13:04
par Pascal Vernie
Merci Dobro
Effectivement le code marche sur une vielle version 3.93, mais pas sur les nouvelles.
Amitiés
Pascal

Publié : ven. 07/mars/2008 14:14
par Backup
Pascal Vernie a écrit :Merci Dobro
Effectivement le code marche sur une vielle version 3.93, mais pas sur les nouvelles.
Amitiés
Pascal
j'ai posté le probleme sur le forum anglais... wait and see :D

Publié : ven. 07/mars/2008 14:24
par gnozal
Essaie comme çà :

Code : Tout sélectionner

; Switch console to Full Screen Mode [PB4 version]
; Windows only 

Prototype.l P_GetConsoleDisplayMode(lpModeFlags.l)
Prototype.l P_SetConsoleDisplayMode(hConsoleOutput.l, dwFlags.l, lpNewScreenBufferDimensions.l)
;
Kernel32Lib = OpenLibrary(#PB_Any, "Kernel32.dll")
If Kernel32Lib    
  GetConsoleDisplayMode.P_GetConsoleDisplayMode = GetFunction(Kernel32Lib, "GetConsoleDisplayMode")
  SetConsoleDisplayMode.P_SetConsoleDisplayMode = GetFunction(Kernel32Lib, "SetConsoleDisplayMode")
  CloseLibrary(Kernel32Lib)
EndIf
If GetConsoleDisplayMode = 0 Or SetConsoleDisplayMode = 0
  End
EndIf


OpenConsole() 
dwOldMode = 0 
Result = GetConsoleDisplayMode(@dwOldMode) 
hOut = GetStdHandle_(#STD_OUTPUT_HANDLE) 
switch = 1 
SetConsoleDisplayMode(hOut, switch, @dwOldMode) 
ConsoleColor(14, 3) 
ConsoleLocate(10, 10) 
PrintN("FULL SCREENMODE !") 
Delay(5000) 
switch = 0 
SetConsoleDisplayMode(hOut, switch0, @dwOldMode) 
ClearConsole() 
ConsoleColor(10,2) 
ConsoleLocate(10,10) 
PrintN("Windowed MODE !") 
Delay(5000) 
CloseConsole() 
End

Publié : ven. 07/mars/2008 14:29
par Backup
c'est la ou je mesure mes limites , l'utilisation des prototypes ou j'y ai rien compris :lol:

mais c'est pas grave , le fait est que c'etais plus simple avant ....
je ne comprends pas pourquoi le code d'avant ne marche pas ... :?

Publié : ven. 07/mars/2008 14:49
par gnozal
Dobro a écrit :c'est la ou je mesure mes limites , l'utilisation des prototypes ou j'y ai rien compris :lol:
On aurait aussi pu faire sans les prototypes :

Code : Tout sélectionner

; Switch console to Full Screen Mode 
; Windows only 

Kernel32Lib = OpenLibrary(#PB_Any, "Kernel32.dll")
If Kernel32Lib    
  GetConsoleDisplayMode = GetFunction(Kernel32Lib, "GetConsoleDisplayMode")
  SetConsoleDisplayMode = GetFunction(Kernel32Lib, "SetConsoleDisplayMode")
  If GetConsoleDisplayMode = 0 Or SetConsoleDisplayMode = 0
    End
  EndIf
  
  OpenConsole() 
  dwOldMode=0 
  Result= CallFunctionFast(GetConsoleDisplayMode, @dwOldMode) 
  hOut=GetStdHandle_(#STD_OUTPUT_HANDLE) 
  switch=1 
  CallFunctionFast(SetConsoleDisplayMode, hOut, switch, @dwOldMode) 
  ConsoleColor(14,3) 
  ConsoleLocate(10,10) 
  PrintN("FULL SCREENMODE !") 
  Delay(5000) 
  switch=0 
  CallFunctionFast(SetConsoleDisplayMode, hOut, switch0, @dwOldMode) 
  ClearConsole() 
  ConsoleColor(10,2) 
  ConsoleLocate(10,10) 
  PrintN("Windowed MODE !") 
  Delay(5000) 
  CloseConsole() 
  
  CloseLibrary(Kernel32Lib)
EndIf

End
Le tout c'est de faire appel à ces 2 fonctions situées dans Kernel32.DLL

Publié : ven. 07/mars/2008 17:46
par Pascal Vernie
Merci à tous les deux.
Cela fonctionne parfaitement, c'est la que l'on voit les Pros du PureBasic.
Amitiés
Pascal

Publié : ven. 07/mars/2008 19:24
par Backup
Merci :)