Konsolenanwendung und Frontend
- The Hit-Man
- Beiträge: 2250
- Registriert: 21.11.2004 17:01:56
- Wohnort: Menden ( Sauerland )
-
Kontaktdaten:
Konsolenanwendung und Frontend
hat jemand eine Ahnung, wie man zu einem Konsolentool ein Frontend basteln kann? Jeder kennt ja bestimmt K3B und dieses setzt ja bekanntlich auf cdrecord auf ( benutzt also auch ein Konsolentool ). Jetzt meine Frage. Wie schafft man es, die Ausgaben von einem Konsolentool, in ein grafisches Fenster zu bekommen? Wenn K3B am brennen ist, zeigt es ja auch einen ProgressBar an, damit man sehen kann, wie weit der Brennvorgang ist. Wie kann K3B, denn den Status von cdrecord abfragen? Es gibt ja einige Tools, die nur ein grafisches Frontend besitzen und auf einen Konsolentool aufsetzen. Ich finde das hat einen großen Vorteil, denn es ist einfacher, und auch schneller, ein Konsolentool zu programmieren, ohne gleich, das ganze QT-Fenster mit zu kompilieren. Außerdem kann ja auch das Konsolentool in PHP, Perl oder sonstigem geschrieben sein. Hat jemand von Euch eine Ahnung, wie so etwas geht? Ich meine jetzt nicht, "wie bastel ich mir ein Fenster". Das ist ja kein großes Problem. Nur wie bekomme ich dort die Ausgaben hin?
Wer HTML postet oder gepostetes HTML quotet oder sich gepostetes oder
gequotetes HTML beschafft, um es in Verkehr zu bringen, wird geplonkt.
damals windows, früher ubuntu, danach debian, heute arch-linux
gequotetes HTML beschafft, um es in Verkehr zu bringen, wird geplonkt.
damals windows, früher ubuntu, danach debian, heute arch-linux
Naja, in Perl kannst du z.B. einen Befehl starten und dessen Ausgaben via einer Pipe einlesen. In der Doku zu Perls open sollten da paar Beispiele sein.
Oder du nutzt Konstrukte wie Backticks oder qx{}. Also mal auf Perl bezogen. Damit bekommst du dann die Infos in dein Frontend.
Sicher gibts da auch noch eine Reihe anderer Moeglichkeiten...
Oder du nutzt Konstrukte wie Backticks oder qx{}. Also mal auf Perl bezogen. Damit bekommst du dann die Infos in dein Frontend.
Sicher gibts da auch noch eine Reihe anderer Moeglichkeiten...
- The Hit-Man
- Beiträge: 2250
- Registriert: 21.11.2004 17:01:56
- Wohnort: Menden ( Sauerland )
-
Kontaktdaten:
ja, das mit den pipes habe ich schon mal irgendwo gehört. Aber nehmen wir mal K3B als Beispiel. cdrecord ist ja nicht in einer Script-Sprache geschrieben. Ich hatte eigentlich vor gehabt, eine kleine MySql Anwendung in PHP zu schreiben ( weil die Anbindung zu MySQL mir unter PHP ganz gut gefällt ) und später mal ein Frontend dafür zu machen. Was mich an K3B also wundert , ist, das cdrecord ja das eigentliche BrennTool ist ( ich glaube sogar, das Nero-Linux darauf aufsetzt ) und K3B trotzdem einen ProgressBar anzeigen kann, während cdrecord brennt. Machen die das auch mit pipes?
Wer HTML postet oder gepostetes HTML quotet oder sich gepostetes oder
gequotetes HTML beschafft, um es in Verkehr zu bringen, wird geplonkt.
damals windows, früher ubuntu, danach debian, heute arch-linux
gequotetes HTML beschafft, um es in Verkehr zu bringen, wird geplonkt.
damals windows, früher ubuntu, danach debian, heute arch-linux
Ich vermute mal, dass die dazu den -v Schalter von cdrecord nutzen. Dabei gibt cdrecord Infos zum Fortschritt aus. Zusammen mit dem, was das Frontend bzgl. der Menge der zu schreibenden Daten weiss, laesst sich da sicher was basteln. Das heisst, das Frontend startet cdrecord mit entsprechenden Optionen und liest dessen Ausgabe und aktualisiert dann damit die Progressbar.
Aber wenns dich genau interessiert, schau doch einfach mal in den Sourcecode von K3B rein
Aber wenns dich genau interessiert, schau doch einfach mal in den Sourcecode von K3B rein
- The Hit-Man
- Beiträge: 2250
- Registriert: 21.11.2004 17:01:56
- Wohnort: Menden ( Sauerland )
-
Kontaktdaten:
ja, genau das meine ich ja Wie ließt K3B die Ausgaben von cdrecord? In dem Code von K3B reinschauen? Oh man, tu mir das nicht an. Ich hatte K3B auf nen 450Mhz kompiliert, das hat eine Stunde gedauert Ich mag gar nicht wissen, wieviel Code dahinter hängt und es ist nur ein Frontend.
Wer HTML postet oder gepostetes HTML quotet oder sich gepostetes oder
gequotetes HTML beschafft, um es in Verkehr zu bringen, wird geplonkt.
damals windows, früher ubuntu, danach debian, heute arch-linux
gequotetes HTML beschafft, um es in Verkehr zu bringen, wird geplonkt.
damals windows, früher ubuntu, danach debian, heute arch-linux
Du könntest Dir mit die Optionen anzeigen lassen, mit denen cdrecord z.B. gestartet wird. Ich hab das mal mit bashburn so gemacht, weil ich eben genau die Optionen haben wollte, und hat gut funktioniert.
henry
Code: Alles auswählen
ps -ef
henry
- The Hit-Man
- Beiträge: 2250
- Registriert: 21.11.2004 17:01:56
- Wohnort: Menden ( Sauerland )
-
Kontaktdaten:
ja, okay. nur wie kriege ich das Frontend dazu, die Daten zu lesen. Ich brauche kein Code-Beispiel, nur das Prinzip
Wer HTML postet oder gepostetes HTML quotet oder sich gepostetes oder
gequotetes HTML beschafft, um es in Verkehr zu bringen, wird geplonkt.
damals windows, früher ubuntu, danach debian, heute arch-linux
gequotetes HTML beschafft, um es in Verkehr zu bringen, wird geplonkt.
damals windows, früher ubuntu, danach debian, heute arch-linux
Naja, Code-Beispiel:
Obiger Code bewirkt, dass du ein Kommando startest und dessen Ausgaben mittels einer Pipe lesen kannst. In der While-Schleife passiert dann das eigentliche Einlesen der Ausgabe und da kannst du dann auch entsprechend was anstellen.
Andere Moeglichkeiten waere z.B. auch IPC zu nutzen.
Code: Alles auswählen
open(INPUT, "kommando -options |") or die "Fehler: $!";
while (<INPUT>) { ... mach was ... }
close(INPUT);
Andere Moeglichkeiten waere z.B. auch IPC zu nutzen.
- The Hit-Man
- Beiträge: 2250
- Registriert: 21.11.2004 17:01:56
- Wohnort: Menden ( Sauerland )
-
Kontaktdaten:
- The Hit-Man
- Beiträge: 2250
- Registriert: 21.11.2004 17:01:56
- Wohnort: Menden ( Sauerland )
-
Kontaktdaten:
ja, aber wie kann ich dieses Kommando unter C++ starten. ich kenne da nur die normalen Datei-Optionen, also Datei öffnen, lesen, schließen.
Wer HTML postet oder gepostetes HTML quotet oder sich gepostetes oder
gequotetes HTML beschafft, um es in Verkehr zu bringen, wird geplonkt.
damals windows, früher ubuntu, danach debian, heute arch-linux
gequotetes HTML beschafft, um es in Verkehr zu bringen, wird geplonkt.
damals windows, früher ubuntu, danach debian, heute arch-linux
Uff, in dem Fall war es Perl-Code, wie das unter C++ geht weiss ich nicht. Aber da gibt es sicherlich auch aehnliche Moeglichkeiten.
Fuer C++ hab ich auf die Schnelle das hier gefunden: http://ubuntuforums.org/showthread.php?p=1426991
Fuer C++ hab ich auf die Schnelle das hier gefunden: http://ubuntuforums.org/showthread.php?p=1426991
Da gäbs ja auch noch zenity und gmessage. Damit kannst du die Verknüpfung von GUI und Engine per Shell erledigen.
Zenity allows you to display GTK+ dialogs from shell scripts; it is a rewrite of the `gdialog' command from GNOME 1. . Zenity includes a gdialog wrapper script so that it can be used with legacy scripts.
gmessage provides an easy way to display scriptable pop-up dialogs. Based on the GIMP Toolkit, gmessage fits in well with desktops such as GNOME, XFce, and ROX.
Zenity allows you to display GTK+ dialogs from shell scripts; it is a rewrite of the `gdialog' command from GNOME 1. . Zenity includes a gdialog wrapper script so that it can be used with legacy scripts.
gmessage provides an easy way to display scriptable pop-up dialogs. Based on the GIMP Toolkit, gmessage fits in well with desktops such as GNOME, XFce, and ROX.
Das ist aber nicht was er sucht. Er will nicht einfach ein Popup öffnen, sondern eine vollständige Oberfläche bauen, die für die eigentliche Arbeit auf ein Konsolentool zurück greift.Wiko hat geschrieben:Da gäbs ja auch noch zenity und gmessage. Damit kannst du die Verknüpfung von GUI und Engine per Shell erledigen.
- The Hit-Man
- Beiträge: 2250
- Registriert: 21.11.2004 17:01:56
- Wohnort: Menden ( Sauerland )
-
Kontaktdaten: