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
mais il semble bien qu'elle est disparu l'Api en question
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

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
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

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
