(Gelöst) kommander

Status
Für weitere Antworten geschlossen.

spidy

Moderator
Ich glaube ich sehe vor lauter Bäumen den Wald nicht mehr ....

Ich "spiele" gerade mit kommander & habe mir diese zwei Seiten mal angesehen:

Pro-Linux

A kommander crash course

Ich habe mir also eine Form erstellt, die einen "ok-Button" hat. Hinter diesem Button steckt dieser einfache Befehl:
Code:
exec("kwrite")
So, dies funktioniert auch wunderbar, denn "kwrite" wird nach einem Klick auf diesen Button geöffnet.

Nun versuche ich das mit diesem Befehl:

Code:
exec("dir")
Ein Blick in die Konsole ergibt keine Ausgabe, auch nicht mit
Code:
execBackground("dir")
Kann mir das jemand erklären ?

Was mache ich falsch oder was verstehe ich nicht richtig ?

Kann es sein, dass ich diese Form erst schliessen & eine neue öffnen muss ? Wenn ja, wie ?

Oder hat das was mit der "Verbindung" zu tun ?

Cheers.

Spidy
 

Isaak

Member
AW: kommander

Ich kenne mich damit zwar nicht aus, aber was willst du denn mit "dir" bezwecken? meinst du den Konsolen-Befehl "dir"? Falls ja, wird das so nicht funktionieren, da du ein Workaround brauchst, der zunächst die Konsole startet. Also etwa ein ausführbares .sh-Script oder ähnliches. Wie geschrieben, ich kenne mich damit nicht aus, aber das wäre mein Lösungsansatz
 

spidy

Moderator
AW: kommander

Isaak schrieb:
Ich kenne mich damit zwar nicht aus, aber was willst du denn mit "dir" bezwecken? meinst du den Konsolen-Befehl "dir"?
Ja, den meine ich. Es ist mir aber egal, ob das Kommando "dir" oder "rpm -q -a" heisst, oder wie auch immer. Es geht darum, dass ich keinen Output bekomme.

Isaak schrieb:
Falls ja, wird das so nicht funktionieren, da du ein Workaround brauchst, der zunächst die Konsole startet.
Keine Ahnung was Du mit "Workaround" genau meinst. "kommander" ist ein Tool um GUIs unter KDE zu erstellen. Mein Script starte ich von der Konsole aus via "kdmr-executor myScript". So sollten dann auch die Meldungen in der Konsole auftauchen, genauso wie bei allen anderen Programmen, wenn man sie von der Shell aus aufruft.

Spidy
 

cal

Member
AW: kommander

Hallo,
müsstest du in diesem Fall nicht auch angeben wohin die Ausgabe des dir -Kommandos geleitet werden soll?
z.B.:
Code:
exec("dir" > wohin auch immer)
oder so ähnlich.
Kenn mich mit dem was du da machst aber nicht aus.

Du bist ja in dem Moment nicht in einer Konsole, woher sollte dir wissen wo es was hin ausgeben soll?
 

spidy

Moderator
AW: kommander

jkeiper schrieb:
Hallo,
müsstest du in diesem Fall nicht auch angeben wohin die Ausgabe des dir -Kommandos geleitet werden soll?
z.B.:
Code:
exec("dir" > wohin auch immer)
oder so ähnlich.
Kenn mich mit dem was du da machst aber nicht aus.

Du bist ja in dem Moment nicht in einer Konsole, woher sollte dir wissen wo es was hin ausgeben soll?
Soweit ich das beurteilen kann, ist doch bei Shellbefehlen der Standard "konsole". Und ich leite dann um, wenn ich das Ergebnis nicht in der Konsole sehen möchte.

Dennoch, werde mir mal ein paar andere Bespiele ansehen. Bis dahin lasse ich das Ergebnis des Shell-Befehls in einem einen eigenen Fenster im GUI anzeigen.

Spidy
 

spidy

Moderator
AW: kommander

Mann, Mann, Mann ... :eek:

Darauf muss man kommen. Ich weiss nun woran es gelegen hat.
Wenn man bei kommander auf Datei->Neu geht, dann hat man die
Wahl zwischen "Dialog" und "Assistent".

Wählt man "Dialog", dann funzt das mit der Konsole nicht. Beim "Assistent"
geht das. Was der Unterschied zwischen den beiden ist, das weiss ich
noch nicht, werde es aber bestimmt rauskriegen.

Spidy
 

spidy

Moderator
AW: kommander

So langsam dämmert es, denke ich. "kommander-Dialog" scheint dem "kdialog" nah zu sein.

Der "kommander-Dialog" kann, so wie es im Moment bei mir aussieht, die Shell-Befehle nur über einen "internen exec"-Befehl ausführen.

Beim "kommander-Assistent" kann man die Shell-Befehle verwenden. Die Elemente des GUIs werden durch ein voranstehendes "@" angesprochen, was beim "kommander-Dialog" nicht erforderlich ist.

Ein Beispiel, die in einem Shell-Script vorkommende if-Schleife:

Code:
if
......
fi
Beim "Dialog" geht das so nicht, beim "Assistent" schon.

Ich weiss, klingt alles ein bisschen "verwirrend", und ehrlich gesagt, finde ich das im Moment auch ein wenig. Für mich ist das hier "Neuland" und das Web ist nicht gerade voll von guten Tutorials.

Cheers.

Spidy
 

spidy

Moderator
AW: kommander

So, mein GUI steht nun ...

Was mir fehlt, ist noch eine "progress bar".

Hat jemand von Euch sowas schon einmal gemacht (in welcher Programmiersprache auch immer) ? "Bin ganz Ohr !"

Cheers.

Spidy
 

spidy

Moderator
AW: kommander

Ich möchte kurz einen Themen-Wechsel machen ...

Der User hier , der kennt mein Problem !

Ich denke die Lösung liegt bei "dcop" ...

Das Problem ist das GUI bei dcop-server anzumelden & danach zu verwenden.

Macht ruhig mal in der Konsole "dcop" ... und danach "dcop xyz" (xyz, hängt davon ab was gelistet wird) & diesmal nicht als "su". ;)

Cheers.

Spidy
 

spidy

Moderator
AW: kommander

Also, die "Balken haben das Laufen gelernt", dank "dcop" ! Muss mir nur noch irgendeine Berechnung einfallen lassen.

Cheers.

Spidy


PS.: Werde bei Gelegenheit mal versuchen zu erklären, was ich da genau gemacht habe.
 

spidy

Moderator
AW: kommander

spidy schrieb:
PS.: Werde bei Gelegenheit mal versuchen zu erklären, was ich da genau gemacht habe.

Was ist "dcop" ? Hier eine kleine Erklärung von Pro-Linux.

Ich gehe davon aus, dass die Software "kommander" installiert wurde.

1. So, nun via Alt+F2 den "kommander" starten.

2. Mit "Datei -> Neu -> Assistent" eine neue Form öffnen (Bild 1).

3. Eine "Progress Bar" sowie einen "Button" anlegen (Bild 2).

4. Mit einem "rechts-Klick" auf den "Button" den Menüpunkt "Kommander Text bearbeiten" auswählen (Bild 3).

5. Den folgenden Code in das gerade geöffnete Fenster kopieren (Bild 4).

Code:
N=0
while [ $N -le 100 ]; do
N=$[$N+10]
dcop @dcopid KommanderIf setText ProgressBar1 $N
done
6. Projekt speichern & mit ALT+R die Form starten.

7. Auf den Button klicken & Voila !

Cheers.

Spidy

PS: Ich verweise mal bei linuxforen.de auf diesen Beitrag.
 
Status
Für weitere Antworten geschlossen.
Oben