Console zeile lesen
Console zeile lesen
Hallo Zusammen,
ich habe eine Frage zur Consolen Steuerung ?? Ist das richtig ausgedrückt?
Also ich möchte in der Console mehrere Befehle ausführen, wie z. B. mit WinRar (ein Backup starten)
Nachdem WinRar fertig ist, soll die Console wieder geschlossen werden.
PureBasic sollte erkennen das die Console geschlossen wird oder ist.
Oder kann ich von der Console Zeilen oder Texte auslesen?
Was echt super wäre wenn das möglich ist. Damit ich auf verschiedene Ereignisse wieder mit PureBasic darauf reagieren kann.
z. B. eine Meldung von WinRaR "Backup erstellt" und anschließend gebe ich weitere Befehle durch PureBasic in die Console ein. Jedoch muss ich warten bis das Backup erstellt wurde.
Das mit WinRar ist nur ein Beispiel.
Wäre super wenn mir da jemand auf die Sprünge helfen könnte.
Schon mal vielen Dank.
Viele Grüße
ich habe eine Frage zur Consolen Steuerung ?? Ist das richtig ausgedrückt?
Also ich möchte in der Console mehrere Befehle ausführen, wie z. B. mit WinRar (ein Backup starten)
Nachdem WinRar fertig ist, soll die Console wieder geschlossen werden.
PureBasic sollte erkennen das die Console geschlossen wird oder ist.
Oder kann ich von der Console Zeilen oder Texte auslesen?
Was echt super wäre wenn das möglich ist. Damit ich auf verschiedene Ereignisse wieder mit PureBasic darauf reagieren kann.
z. B. eine Meldung von WinRaR "Backup erstellt" und anschließend gebe ich weitere Befehle durch PureBasic in die Console ein. Jedoch muss ich warten bis das Backup erstellt wurde.
Das mit WinRar ist nur ein Beispiel.
Wäre super wenn mir da jemand auf die Sprünge helfen könnte.
Schon mal vielen Dank.
Viele Grüße
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
- Falko
- Admin
- Beiträge: 3535
- Registriert: 29.08.2004 11:27
- Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit) - Kontaktdaten:
Ich denke, sowas ist das, was du suchst:
http://www.purebasic.fr/english/viewtopic.php?t=32495
Gruß, Falko
http://www.purebasic.fr/english/viewtopic.php?t=32495
Gruß, Falko
Dazu steht in der Hilfe (F1) bei RunProgram() ein Beispielcode,
der wirklich recht verständlich ist.
der wirklich recht verständlich ist.
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom
- Falko
- Admin
- Beiträge: 3535
- Registriert: 29.08.2004 11:27
- Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit) - Kontaktdaten:
Hallo Falko,
nein, Du hast Dich nicht verlesen. Das mit dem Backup war nur ein Beispiel. Es geht um verschiedene andere Programme, die in einer Console ausgeführt werden. Diese geben bei Beendigung eine Meldung in einer Consolen Zeile aus. Diese müsste ich verarbeiten.
Wäre schön, wenn Du mir noch ein weiteres Beispiel geben könntest.
Vielen Dank nochmal und ein Frohes Weihnachtsfest.
Viele Grüße
nein, Du hast Dich nicht verlesen. Das mit dem Backup war nur ein Beispiel. Es geht um verschiedene andere Programme, die in einer Console ausgeführt werden. Diese geben bei Beendigung eine Meldung in einer Consolen Zeile aus. Diese müsste ich verarbeiten.
Wäre schön, wenn Du mir noch ein weiteres Beispiel geben könntest.
Vielen Dank nochmal und ein Frohes Weihnachtsfest.
Viele Grüße
Beispiel in der PB-Hilfe unter RunProgram() .
Kurze Erklärung:
Die Konsole stellt "stdout" (Standardausgabe) dar. Um diese Daten dem
User anzeigen zu können ist die Konsole da. Andere Programme können
ebenfalls diesen Datenstream (Datenfluss) lesen. Unter PureBasic ist das
mit der "Process-Bibliothek" abgedeckt. RunProgram() bietet dabei den
einstieg und dank dem Flag #PB_Program_Hide kann die Konsole
versteckt werden, so das der Benutzer diese Kommunkationsvariante
auch nicht sieht.
MFG PMV
Kurze Erklärung:
Die Konsole stellt "stdout" (Standardausgabe) dar. Um diese Daten dem
User anzeigen zu können ist die Konsole da. Andere Programme können
ebenfalls diesen Datenstream (Datenfluss) lesen. Unter PureBasic ist das
mit der "Process-Bibliothek" abgedeckt. RunProgram() bietet dabei den
einstieg und dank dem Flag #PB_Program_Hide kann die Konsole
versteckt werden, so das der Benutzer diese Kommunkationsvariante
auch nicht sieht.
MFG PMV
- Falko
- Admin
- Beiträge: 3535
- Registriert: 29.08.2004 11:27
- Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit) - Kontaktdaten:
Den obigen Link hatte ich ja schon gepostet und ts-soft sein
Sourceschnipsel ist gut dafür zu gebrauchen. Ich habe das mal etwas
umgestellt um in der Console die einzelnen Ausgabezeilen in der Console auszugeben.
Damit könntest du ebenso gut mit PB-Befehlen eine Auswertung auf
bestimmte Bedingungen machen bzw. prüfen. Wenn also alle Ereignisse
stimmen könntest du weitere Runprograms nach dem gleichen Schema
aufrufen und überprüfen oder am Schluss beenden. Da ich nicht genau
weiß, welche Programme was machen sollen habe ich ts-softs Beispiel
einmal in die Console ausgeben lassen. Den Messagerequester kann man
dann auch weglassen. Der ist nur da um zu zeigen, das die Ausgaben
zusammengefasst in der Variable Fulloutput stehen.
Vorraussetzung für diese Funktionen ist aber PB 4.3:
Gruß, Falko
Sourceschnipsel ist gut dafür zu gebrauchen. Ich habe das mal etwas
umgestellt um in der Console die einzelnen Ausgabezeilen in der Console auszugeben.
Damit könntest du ebenso gut mit PB-Befehlen eine Auswertung auf
bestimmte Bedingungen machen bzw. prüfen. Wenn also alle Ereignisse
stimmen könntest du weitere Runprograms nach dem gleichen Schema
aufrufen und überprüfen oder am Schluss beenden. Da ich nicht genau
weiß, welche Programme was machen sollen habe ich ts-softs Beispiel
einmal in die Console ausgeben lassen. Den Messagerequester kann man
dann auch weglassen. Der ist nur da um zu zeigen, das die Ausgaben
zusammengefasst in der Variable Fulloutput stehen.
Vorraussetzung für diese Funktionen ist aber PB 4.3:
Code: Alles auswählen
EnableExplicit
OpenConsole()
Define ping.l = RunProgram("ping", "google.com", "", #PB_Program_Open|#PB_Program_Read)
Define Output.s = ""
Define FullOutput.s=""
If ping
While ProgramRunning(ping)
Output=ReadProgramString(ping); Merke dir jede Zeile
PrintN(Output); Dieser String wird in die Console ausgegeben.
FullOutput + Output + Chr(13); Speicher für das Messagerequester die gesamte Ausgabe
Wend
CloseProgram(ping)
FullOutput + Chr(13) + Chr(13); Zweimal Enter gedrückt
EndIf
MessageRequester("ping", FullOutput); Kann man für weitere Bearbeitung weglassen
Input(); Lass die console noch offen um dort nachzuschauen
CloseConsole()