externes Programm auch wieder beenden
Verfasst: 29.04.2008 13:22
Habe da ein kleines Problem, ich bin totaler Anfänger und bitte um Hilfe!
Erstellt habe ich das Programm mit dem neuen VisualDesigner und PB 4.1
Ich wollte ein externes Programm welches ich zuvor mit einen Button gestartet habe über einen anderen Button auch wieder beenden. Aber irgentwie geht es nicht, weder mit dem Befehl KillProgram noch mit dem Befehl CloseProgram.
Bei dem RunProgram-Befehl die Parameter habe ich mir aus dem Forum rausgelesen aber ich finde sie auch nicht erklärt (,"-s -t 0 -f","",0) und weiß nicht so richtig damit umzugehen. Würde mich auch freuen diese einmal erklärt zu bekommen bzw. wo man dafür eine Erklärung findet.
Ist eigentlich ein Übungsprogramm um langsam reinzukommen
Hier ist mein bisheriger Code
Vielen Dank schon im voraus, würde mich über Hilfe ehrlich freuen
Erstellt habe ich das Programm mit dem neuen VisualDesigner und PB 4.1
Ich wollte ein externes Programm welches ich zuvor mit einen Button gestartet habe über einen anderen Button auch wieder beenden. Aber irgentwie geht es nicht, weder mit dem Befehl KillProgram noch mit dem Befehl CloseProgram.
Bei dem RunProgram-Befehl die Parameter habe ich mir aus dem Forum rausgelesen aber ich finde sie auch nicht erklärt (,"-s -t 0 -f","",0) und weiß nicht so richtig damit umzugehen. Würde mich auch freuen diese einmal erklärt zu bekommen bzw. wo man dafür eine Erklärung findet.
Ist eigentlich ein Übungsprogramm um langsam reinzukommen
Hier ist mein bisheriger Code
Code: Alles auswählen
;Programm mit neuen Visual Designer erstellt
Global Window_0, Button_0, Button_1, Button_2, Button_3, Button_4 ;Button einfügen die man noch selber einfügt
Structure VisualDesignerGadgets
Gadget.l
EventFunction.l
EndStructure
Global NewList EventProcedures.VisualDesignerGadgets()
Procedure RegisterGadgetEvent(Gadget, *Function)
If IsGadget(Gadget)
AddElement(EventProcedures())
EventProcedures()\Gadget = Gadget
EventProcedures()\EventFunction = *Function
EndIf
EndProcedure
Procedure CallEventFunction(Window, Event, Gadget, Type)
ForEach EventProcedures()
If EventProcedures()\Gadget = Gadget
CallFunctionFast(EventProcedures()\EventFunction, Window, Event, Gadget, Type)
LastElement(EventProcedures())
EndIf
Next
EndProcedure
Procedure Open_Window_0()
Window_0 = OpenWindow(#PB_Any, 5, 5, 400, 200, "Mein Fenster mit PB 4.10", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
If Window_0
If CreateGadgetList(WindowID(Window_0))
Button_0 = ButtonGadget(#PB_Any, 20, 20, 110, 40, "Prog. Beenden")
Button_1 = ButtonGadget(#PB_Any, 20, 70, 110, 40, "Jäegermeister") ;Button einfügen die man noch selber einfügt
Button_2 = ButtonGadget(#PB_Any, 20, 120, 110, 40, "Windows Beenden")
Button_3 = ButtonGadget(#PB_Any, 145, 20, 110, 40, "Schleife For-Next")
Button_4 = ButtonGadget(#PB_Any, 145, 70, 110, 40, "Jägermeister Ende")
EndIf
EndIf
EndProcedure
Open_Window_0()
Repeat
Event = WaitWindowEvent()
Gadget = EventGadget()
Type = EventType()
Window = EventWindow()
Select Event
Case #PB_Event_Gadget
CallEventFunction(Window, Event, Gadget, Type)
;DiesenCode habe ich selber eigefügt zur Aktivierung der Tasten
Select EventGadget()
Case Button_0
Debug 1 ;nur zur Kontrolle
End
Case Button_1
RunProgram("C:\Programme\Multimedia\Jägermeister\ps_start.exe","-s -t 0 -f","",0) ;ein Programm starten
Case Button_2
RunProgram("C:\Windows\System32\shutdown.exe","-s -t 0 -f","",0) ;Windows beenden
Case Button_3
a$ + "Ja das ist der OK Button !!"
MessageRequester("Button OK ",a$, #PB_MessageRequester_Ok) ;Meldungsfenster öffnen
For x = 1 To 10
MessageRequester("Nachricht",Str(x)+". Durchlauf",0) ;neues Meldungsfenster mit einer For Next Schleife (+"Texteingabe" für anschliessende Texte)
Next
;Hier ist mein Problem, das Programm zu beenden welches ich vorher gestartet habe
Case Button_4
CloseProgram("C:\Programme\Multimedia\Jägermeister\ps_start.exe","-s -t 0 -f","",0)
;KillProgram("C:\Programme\Multimedia\Jägermeister\ps_start.exe","-s -t 0 -f","",0) ;Geht auch nicht bei einer Aktivierung
EndSelect
;Ende von meiner Eingabe
EndSelect
Until Event = #PB_Event_CloseWindow
End
Vielen Dank schon im voraus, würde mich über Hilfe ehrlich freuen