PureBasic

Forums PureBasic
Nous sommes le Lun 12/Avr/2021 5:23

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 8 messages ] 
Auteur Message
 Sujet du message: Integration console
MessagePosté: Dim 15/Nov/2020 22:47 
Hors ligne

Inscription: Dim 24/Juin/2018 1:20
Messages: 151
Bonsoir à tous)

est il possible d'intégrer une fenêtre console dans une fenêtre window? si oui, j'en serais ravis de voir ça)

je pose la question car fut une époque, j'avais un ancien logiciel où sur le coin droit ou gauche de la fenêtre,
on pouvait observer la présence d'une console, je ne sais plus trop de quoi d'ailleur :lol: et j'ignore quelle
méthode avait été employé, mais cela m'intéresserais de faire la même chose pour un projet avenir

je m'en remets à vous les spécialistes :D


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Integration console
MessagePosté: Lun 16/Nov/2020 4:24 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 09/Nov/2005 9:53
Messages: 4314
Ekim a écrit:
est il possible d'intégrer une fenêtre console dans une fenêtre window?

Jamais je n'ai vu ca; donc...

Les consoles s'ouvrent sous windows et pas sur une fenetre windows.
Mais attendons que les ténors de PB s'expriment... 8)

_________________
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Portable LENOVO ideapad 110-17ACL 64 bits
Version de PB : 5.73LTS - 32 bits


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Integration console
MessagePosté: Lun 16/Nov/2020 13:18 
Hors ligne

Inscription: Dim 24/Juin/2018 1:20
Messages: 151
Salut @SPH, il est vrai que sa aurait été plus simple de retrouver le nom du fameux soft :lol:

mais je cherche comme un malade dans mes anciens disque ext, bref c'est pas gagné :?


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Integration console
MessagePosté: Lun 16/Nov/2020 15:27 
Hors ligne

Inscription: Mer 14/Sep/2011 16:59
Messages: 966
Il est plus simple de recuperer la sortie console et de l'afficher dans une fenêtre comme ça:
(ça vient du forum)
Code:
;Rediriger l'invite de commande dans un gadget

Enumeration Font
  #FontGlobal
EndEnumeration

Enumeration Window
  #MainForm
EndEnumeration

Enumeration Gadget
  #Result
EndEnumeration

Enumeration KeyBoard
  #Up
  #Down
EndEnumeration

Declare Start()
Declare RunCmd(Cmd.s)
Declare OnChange()
Declare OnKey()
Declare OnResize()

Start()

Procedure Start()
  LoadFont(#FontGlobal, "", 11)
  SetGadgetFont(#PB_Default, FontID(#FontGlobal))
  If OpenWindow(#MainForm, 0, 0, 800, 600, "Terminal", #PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget)
    EditorGadget(#Result, 5, 10, 790, 580)
    SetGadgetColor(#Result,  #PB_Gadget_BackColor, RGB(174, 191, 191))
    SetActiveGadget(#Result)
   
    AddKeyboardShortcut(#MainForm, #PB_Shortcut_Up, #Up)
    AddKeyboardShortcut(#MainForm, #PB_Shortcut_Down, #Down)
   
    BindEvent(#PB_Event_Menu, @OnKey(), #MainForm, #Up)
    BindEvent(#PB_Event_Menu, @OnKey(), #MainForm, #Down)
   
    BindEvent(#PB_Event_SizeWindow, @OnResize())
    BindGadgetEvent(#Result, @OnChange(), #PB_EventType_Change)
    Repeat : Until WaitWindowEvent(10) = #PB_Event_CloseWindow
  EndIf
EndProcedure

Procedure RunCmd(Cmd.s)
  Protected prg.i, Stdout.s, TagResult.b
 
  Select LCase(cmd)
     
    Case "cls"
      ClearGadgetItems(#Result)
     
    Case "exit"
      End
     
    Default
      If LSet(Cmd, 3) = "cd "
        SetCurrentDirectory(Trim(Mid(cmd, 3)))
        AddGadgetItem(#Result, -1,  "le dossier courrant est : " + GetCurrentDirectory())
       
      ElseIf LCase(LSet(cmd, 5)) = "title"
        SetWindowTitle(#MainForm, Trim(Mid(cmd, 6)))
       
      Else 
       
        prg = RunProgram("cmd.exe", "/c " + Cmd, "", #PB_Program_Open|#PB_Program_Read|#PB_Program_Hide|#PB_Program_UTF8);
        If prg
          While ProgramRunning(prg)
            If AvailableProgramOutput(prg)
              Stdout = ReadProgramString(prg,  #PB_UTF8)
              AddGadgetItem(#Result, -1,  Stdout)
              If Stdout <> ""
                TagResult = #True
              EndIf
            EndIf
          Wend
         
          CloseProgram(prg)
         
          If FindString(Cmd, ">") Or FindString(LCase(Cmd), "del")
            TagResult = #True
          EndIf
         
          If Not TagResult
            AddGadgetItem(#Result, -1,  "Erreur de commande : " + Cmd)
          EndIf
        EndIf
      EndIf
      AddGadgetItem(#Result, -1,  "")
  EndSelect
EndProcedure

Procedure OnChange()
  Protected Buffer.s = GetGadgetItemText(#Result, CountGadgetItems(#Result)-1)
  Static Cmd.s
 
  If Buffer = "" And cmd <> ""
    RunCmd(cmd)
  EndIf
 
  Cmd = Buffer
  SetGadgetState(#Result, CountGadgetItems(#Result))
EndProcedure

Procedure OnKey() 
  Protected Index = CountGadgetItems(#Result)
  SetGadgetState(#Result, Index)
EndProcedure

Procedure OnResize()
  Protected Width = WindowWidth(#MainForm)
  Protected Height= WindowHeight(#MainForm)
 
  ResizeGadget(#Result, #PB_Ignore, #PB_Ignore, Width - 10, Height - 20)
EndProcedure


T'as plus qu'à taper help ou dir sous windows...


C'est dommage que "AltConsole" soit devenu payant parce qu'il est génial:
https://www.purebasic.fr/english/viewto ... ALtconsole

M.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Integration console
MessagePosté: Mar 17/Nov/2020 3:35 
Hors ligne

Inscription: Dim 24/Juin/2018 1:20
Messages: 151
Salut @Mesa

Ton idée est génial, mais en fait, je m'était peut être mal exprimé
ce que j'entendais par "console" c'était la console propre à Pb et
non pas cmd, l'invite de commande de microsoft;

j'aurais peut être dû dire plutôt console Pb dans un Window Pb

mais ton idée est excellente merci pour le partage :P


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Integration console
MessagePosté: Mar 17/Nov/2020 6:55 
Hors ligne
Avatar de l’utilisateur

Inscription: Jeu 29/Juil/2004 16:33
Messages: 2975
Localisation: Klyntar
Ekim a écrit:
j'aurais peut être dû dire plutôt console Pb dans un Window Pb


Console PB ??






@++

_________________
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Integration console
MessagePosté: Mar 17/Nov/2020 9:49 
Hors ligne

Inscription: Sam 08/Fév/2014 15:19
Messages: 1886
Citation:
ce que j'entendais par "console" c'était la console propre à Pb et
non pas cmd, l'invite de commande de microsoft;
j'aurais peut être dû dire plutôt console Pb dans un Window Pb
Ne serais-ce pas plutôt la fenêtre de Debug ?
Dans ce cas, ce n'est pas une console, car elle ne fait que les sorties.

Les sorties "console" qu'on trouve par exemple dans les programmes de pilotages de machines CNC (Ex: imprimantes 3D, lasers de découpe etc) sont souvent des fenêtres faisant office de terminal série et permettant de "dialoguer" directement avec la machine pour lui passer les commandes directement (ex: passer des commandes GRBL))


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Integration console
MessagePosté: Lun 23/Nov/2020 22:48 
Hors ligne

Inscription: Dim 24/Juin/2018 1:20
Messages: 151
Ok autant pour moi concernant les appellations techniques :lol:
Merci pour votre aide, comme vous le voyez, je viens de très loin))


encore merci


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 8 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Majestic-12 [Bot] et 23 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye