ich versuche über dieses beispiel der output einer cmd shell in ein
editorgadget darzustellen.
Bei einfache befehle wie dir oder set oder externe tools das ein output zurueckgeben ist ok.
wenn aber diese anwendung mehr als eine seite zeigen möchte dann wartet dieser auf "druecken einer taste" um die nächste seite zu zeigen.
um das nachzustellen könnt Ihr direkt pause in stringgadget eingeben.
habt Ihr vielleicht eine Idee wie man das lösen kann?
Danke!
jpd
Code: Alles auswählen
Enumeration
#Window_Main
#Gadget_String
#Gadget_Editor
EndEnumeration
Global NewList leggistring.s()
Declare.s run_prog(run_cmd.l)
Procedure.l run_commander(prog.s)
run_cmd = RunProgram("cmd.exe", "/c "+prog, "", #PB_Program_Open|#PB_Program_Read|#PB_Program_Write |#PB_Program_Error)
ProcedureReturn run_cmd
EndProcedure
Procedure open_win()
WindowWidth = 640
WindowHeight = 480
WindowTitle.s = "CMD on a box"
If OpenWindow(#Window_Main, 0, 0, WindowWidth, WindowHeight, WindowTitle, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered)
AddKeyboardShortcut(#Window_Main, #PB_Shortcut_Escape, #PB_Shortcut_Escape)
AddKeyboardShortcut(#Window_Main, #PB_Shortcut_Return, #PB_Shortcut_Return)
If CreateGadgetList(WindowID(#Window_Main))
StringGadget(#Gadget_String, 10, 10, WindowWidth - 20, 20, "")
EditorGadget(#Gadget_Editor, 10, 40, WindowWidth - 20, WindowHeight - 50)
EndIf
Quit = #False
EndIf
EndProcedure
Procedure.s run_prog(app.l)
If app
While ProgramRunning(app)
test.s= ReadProgramString(app)
Debug test
AddElement(leggistring())
leggistring()= test
;Ergebnis = WaitProgram(app , 5000)
;Debug "Timeout: "+Str(Ergebnis)
Wend
EndIf
ProcedureReturn
EndProcedure
open_win()
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Quit = #True
Case #PB_Event_Menu
Select EventMenu()
Case #PB_Shortcut_Escape
Quit = #True
Case #PB_Shortcut_Return
run_id=run_commander(GetGadgetText(#Gadget_String))
run_prog(run_id)
ResetList(leggistring.s())
While NextElement(leggistring.s())
Debug leggistring()
AddGadgetItem(#Gadget_Editor,-1, leggistring.s())
Wend
ClearList(leggistring.s())
EndSelect
EndSelect
Until Quit