Console

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Pascal Vernie
Messages : 127
Inscription : mar. 15/mars/2005 16:37

Console

Message 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
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Console

Message 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
Pascal Vernie
Messages : 127
Inscription : mar. 15/mars/2005 16:37

Message par Pascal Vernie »

Merci Dobro
Effectivement le code marche sur une vielle version 3.93, mais pas sur les nouvelles.
Amitiés
Pascal
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message 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
gnozal
Messages : 832
Inscription : mar. 07/déc./2004 17:35
Localisation : France
Contact :

Message 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
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message 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 ... :?
gnozal
Messages : 832
Inscription : mar. 07/déc./2004 17:35
Localisation : France
Contact :

Message 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
Pascal Vernie
Messages : 127
Inscription : mar. 15/mars/2005 16:37

Message par Pascal Vernie »

Merci à tous les deux.
Cela fonctionne parfaitement, c'est la que l'on voit les Pros du PureBasic.
Amitiés
Pascal
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Merci :)
Répondre