Bonjour,
est il possible soit de masquer une fenêtre console ? en réduisant ça taille ou la masquer complétement... donc sur un OpenConsole.
ou bien alors écrire dans la sortie standard du programme qui s'ouvre avec OpenWindow(#PB_Any,0,0,0,0,"process", #PB_Window_Invisible).
donc sortie standard se serait l’équivalent d'un print en OpenConsole sur un OpenWindow
par avance merci
AlionG
sortie standard windows
- falsam
- Messages : 7320
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: sortie standard windows
RunProgram() (Voir aide)
Un exemple pour illustrer cette fonctionnalité.
Un exemple pour illustrer cette fonctionnalité.
Code : Tout sélectionner
EnableExplicit
Enumeration
#MainForm
#stdout
EndEnumeration
If OpenWindow(#MainForm, 0, 0, 500, 500, "STdout", #PB_Window_SystemMenu)
EditorGadget(#stdout, 0, 350, 500, 140)
EndIf
Global Exec.i, CMD.s, Param.s, Stdout.s
CMD ="ping"
Param = "www.purebasic.com"
Stdout=""
Exec = RunProgram(CMD, Param, "",#PB_Program_Open|#PB_Program_Hide|#PB_Program_Read )
If Exec
While ProgramRunning(Exec)
If AvailableProgramOutput(Exec)
If AvailableProgramOutput(Exec)
Stdout + ReadProgramString(Exec) + #CRLF$
EndIf
EndIf
Wend
Stdout + Str(ProgramExitCode(Exec))
SetGadgetText(#Stdout, Stdout)
CloseProgram(Exec)
EndIf
Debug Stdout
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: sortie standard windows
ok merci pour ta reponse mais je vais essayer de detailler un peu plus :
en faite l'idée et de creer en pb un prog.exe qui fera des opération non possible avec un autre langage.
avec cet autre language j'envois mes parametres et les recupere en pb sur l'entree du prog avec :
ProgramParameter()
jusque la tout va bien, je peux executer des fonctions ect...
mais lorsque je souhaite recevoir un resultat du programme fait avec pb, je dois le retourner sur le chan out principale de l'app pb, pour etre capable de le lire avec mon autre langage.
donc avec un OpenConsole() je fais un Print et c'est tout bon je reçoit bien mon résultat.
maintenant mon problème c'est qu'a chaque opération j'ai ma fenêtre de cmd qui pop un fragment de seconde et ça je voudrais l'éviter !
si je me base sur RunProgram je dosi faire alors un RunProgram de mon prog qui est en OpenConsole ?
c'est un peu lourd non ?
une autre idée peut être ?
en faite l'idée et de creer en pb un prog.exe qui fera des opération non possible avec un autre langage.
avec cet autre language j'envois mes parametres et les recupere en pb sur l'entree du prog avec :
ProgramParameter()
jusque la tout va bien, je peux executer des fonctions ect...
mais lorsque je souhaite recevoir un resultat du programme fait avec pb, je dois le retourner sur le chan out principale de l'app pb, pour etre capable de le lire avec mon autre langage.
donc avec un OpenConsole() je fais un Print et c'est tout bon je reçoit bien mon résultat.
maintenant mon problème c'est qu'a chaque opération j'ai ma fenêtre de cmd qui pop un fragment de seconde et ça je voudrais l'éviter !
si je me base sur RunProgram je dosi faire alors un RunProgram de mon prog qui est en OpenConsole ?
c'est un peu lourd non ?
une autre idée peut être ?

- falsam
- Messages : 7320
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: sortie standard windows
Solution fenetre invisible.
Code : Tout sélectionner
If OpenWindow(0, 0, 0, 0, 0, "0", #PB_Window_Invisible)
EndIf
Global Exec.i, CMD.s, Param.s, Stdout.s
CMD ="ping"
Param = "www.purebasic.com"
Stdout=""
Exec = RunProgram(CMD, Param, "",#PB_Program_Open|#PB_Program_Hide|#PB_Program_Read )
If Exec
While ProgramRunning(Exec)
If AvailableProgramOutput(Exec)
If AvailableProgramOutput(Exec)
Stdout + ReadProgramString(Exec) + #CRLF$
EndIf
EndIf
Wend
CloseProgram(Exec)
EndIf
Debug Stdout
End
Dernière modification par falsam le ven. 09/sept./2011 12:54, modifié 1 fois.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
- falsam
- Messages : 7320
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: sortie standard windows
Si tu tiens absolument à ton mode console, place FreeConsole_() juste apres OpenConsole(). La fenêtre console se ferme plus rapidement.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
- falsam
- Messages : 7320
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: sortie standard windows
Une petite dernière pour la route mais je ne suis pas certain que ce soit plus rapide que la précédente.
Le principe est de Cacher la fenêtre de la console d'aprés son handle.
Le principe est de Cacher la fenêtre de la console d'aprés son handle.
Code : Tout sélectionner
Import ""
GetConsoleWindow()
EndImport
CMD$ ="ping"
Param$ = "www.purebasic.com"
OpenConsole()
;Caché la console d'aprés le handle de la console
ShowWindow_(GetConsoleWindow(), #SW_HIDE)
Exec = RunProgram(CMD$, Param$, "",#PB_Program_Open|#PB_Program_Hide|#PB_Program_Read|#SW_HIDE)
If Exec
While ProgramRunning(Exec)
If AvailableProgramOutput(Exec)
If AvailableProgramOutput(Exec)
Buffer$=ReadProgramString(Exec)
PrintN(Buffer$)
Debug Buffer$ ;test
EndIf
EndIf
Wend
CloseProgram(Exec)
EndIf
CloseConsole()
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: sortie standard windows
ok ben supe rmerci a toi falsam ! je vais tester tout ça 
