Programm aus Programm starten und stoppen

Für allgemeine Fragen zur Programmierung mit PureBasic.
Stephan-X
Beiträge: 80
Registriert: 30.07.2008 16:02
Computerausstattung: PC 8 GB RAM NVIDIA Grafik 1 TB RAID // Ubuntu Mate 64 Bit // Pure 6.0 64
Wohnort: Oberösterreich

Programm aus Programm starten und stoppen

Beitrag von Stephan-X »

Hallo Pure-Gemeinde am Sonntag,
ich starte aus einem Programm ein weiteres, soweit funzt das, nun soll nach Beendigung des zweiten Programms das vorherige weiterlaufen von einer bestimmten Stelle aus.. ? Das ist der Knackpunkt für mich, ich krich das nicht ? Hat mal jemand ne Idee. Danke.
:(
Wenn Sie nichts zu Tun haben, tun Sie es bitte nicht hier.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8838
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Programm aus Programm starten und stoppen

Beitrag von NicTheQuick »

Schau dir dazu 'RunProgram()' und den Parameter '#PB_Program_Wait' an.

Und falls dein erstes Programm weiterlaufen soll während das zweite läuft, könnte 'ProgramRunning()' für dich interessant sein.
Stephan-X
Beiträge: 80
Registriert: 30.07.2008 16:02
Computerausstattung: PC 8 GB RAM NVIDIA Grafik 1 TB RAID // Ubuntu Mate 64 Bit // Pure 6.0 64
Wohnort: Oberösterreich

Re: Programm aus Programm starten und stoppen

Beitrag von Stephan-X »

OK Danke hat erst mal geholfen, habe mir dazu nochmal die Befehle dazu angesehen (TOLL) aber ein Problem ist jetzt .. die ersten zwei zeilen HideGadget(..) werden nun nicht berücksichtigt ! wo hab ich da einen Denkfehler !

Code: Alles auswählen

If  File = -1 
   HideGadget(#Datei,1)
   HideGadget(#GrundCon,0)   
 
   RunProgram(Home+"/Programme/G-Daten" ,"","",#PB_Program_Wait) 
   Goto start
EndIf
:)
Wenn Sie nichts zu Tun haben, tun Sie es bitte nicht hier.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8838
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Programm aus Programm starten und stoppen

Beitrag von NicTheQuick »

Baue hinter die beiden 'HideGadget()'s folgende Zeile ein:

Code: Alles auswählen

While WindowEvent() : Wend
Das bewirkt, dass die Events, die durch 'HideGadget()' ausgelöst wurden, noch abgearbeitet werden, und somit auch wirklich Wirkung zeigen.

Allerdings ist es in einer GUI-Anwendung eher ratsam die Eventschleife nicht zu blocken, was du ja durch das 'RunProgram()' aber tust.
Aber du könntest z.B. das Hauptfenster mit 'DisableWindow()' deaktivieren und nach dem 'RunProgram()' wieder aktivieren, wobei ich mir nicht sicher bin, ob das was bringt.
Das Problem ist im Grunde folgendes: Wenn dein Fenster keine Events mehr abarbeitet, dann denkt Windows, dass dein Programm hängt und zeigt dann an "(keine Rückmeldung)" (oder so ähnlich).

Mit 'ProgramRunning()' könntest du das Problem umgehen, aber ich möchte jetzt keinen Code extra dafür schreiben um dir zu zeigen wie. Im Grunde musst du das Programm ohne '#PB_Program_Wait' starten und dann in deiner Eventschleife immer wieder prüfen, ob 'ProgramRunning()' noch einen Wert ungleich Null zurückgibt. Falls es das nicht mehr tut, weißt du, dass das externe Programm beendet wurde und dann kannst du irgendwo hin springen.
Antworten