Pagina 1 di 1

Come adattare script KDE3, che usano dcop, su KDE4? [OK]

Inviato: dom 19 dic 2010, 14:01
da zoros
Ciao,
nel passaggio a KDE4 dcop è stato sostituito in qualche modo da dbus .... alcuni anni fa mia figlia aveva scritto il primo antivirus per Linux "just for fun" veramente efficace :D ... ma su KDE4 la progressbar (via dcop) non funziona ... si può adattare lo script a KDE4 senza stravolgerlo?

allego code LinVir.sh ... i fortunati possessori di KDE3 possono provarlo anche così ;) ...

Codice: Seleziona tutto

#!/bin/bash

DATA=`echo $'\127\151\156\144\157\167\163'`

echo "Avvio di LinVir"

kdialog --msgbox "Benvenuto su LinVir: il primo antivirus per Linux! Permi OK per iniziare la procedura di ricerca di virus" --title "LinVir"
dcopRef=`kdialog --progressbar "Initialising ..." 4`
sleep 1.5
dcop $dcopRef setProgress 1
dcop $dcopRef setLabel "Scansione del disco ..."
sleep 2
dcop $dcopRef setProgress 2
sleep 2
dcop $dcopRef setLabel "1 trovato | Conclusione ricerca"
dcop $dcopRef setProgress 3
sleep 2
dcop $dcopRef setProgress 4
sleep 2
dcop $dcopRef close
kdialog --sorry "Ritrovata una partizione infetta. Premi OK per aggiustare il TUO problema" -title "LinVir"
dcopRef=`kdialog --progressbar "Inizio formattazione della partizione di $DATA(TM)" 4`
sleep 3
dcop $dcopRef setProgress 1
dcop $dcopRef setLabel "Eliminazione files in corso ..."
sleep 2.5
dcop $dcopRef setProgress 2
sleep 2
dcop $dcopRef setLabel "Sto sovrascrivendo 35 volte files vuoti sulla partizione infetta per evitare recuperi di essa"
dcop $dcopRef setProgress 3
sleep 5.5
dcop $dcopRef setProgress 4
sleep 0.3
dcop $dcopRef setLabel "Pulitura finale ..."
dcop $dcopRef setProgress 5
sleep 2
dcop $dcopRef close
kdialog --msgbox "Complimenti! Eliminazione della partizione $DATA(TM) nociva effettuata con successo!" --title "LinVir"

Re: Come adattare script KDE3, che usano dcop, su KDE4?

Inviato: dom 19 dic 2010, 14:53
da robbybby
Secondo questo
http://techbase.kde.org/Development/Tut ... ox_example
basta sostituire qdbus a dcop.

In effetti, il suo esempio funziona.

Re: Come adattare script KDE3, che usano dcop, su KDE4?

Inviato: dom 19 dic 2010, 18:07
da zoros
Sì robbybby, funziona come da link :thumbright: ... forse non avevo googolato a sufficienza ...

cambia anche la sintassi (ed è anche case sensitive) ... da dcop:

Codice: Seleziona tutto

dcop $dcopRef setProgress 1
dcop $dcopRef setLabel "Scansione del disco ..."
a qdbus:

Codice: Seleziona tutto

qdbus $qdbusRef Set "" value 1
qdbus $qdbusRef setLabelText "Scansione del disco ..."
aggiungo code LinVir.sh per KDE4 (non provato su versione KDE4 recente):

Codice: Seleziona tutto

#!/bin/bash

DATA=`echo $'\127\151\156\144\157\167\163'`

echo "Avvio di LinVir"

kdialog --msgbox "Benvenuto su LinVir: il primo antivirus per Linux! Permi OK per iniziare la procedura di ricerca di virus" --title "LinVir"
qdbusRef=`kdialog --progressbar "Initialising ..." 4`
sleep 1.5
qdbus $qdbusRef Set "" value 1
qdbus $qdbusRef setLabelText "Scansione del disco ..."
sleep 2
qdbus $qdbusRef Set "" value 2
sleep 2
qdbus $qdbusRef setLabelText "1 trovato | Conclusione ricerca"
qdbus $qdbusRef Set "" value 3
sleep 2
qdbus $qdbusRef Set "" value 4
sleep 2
qdbus $qdbusRef close
kdialog --sorry "Ritrovata una partizione infetta. Premi OK per aggiustare il TUO problema" -title "LinVir"
qdbusRef=`kdialog --progressbar "Inizio formattazione della partizione di $DATA(TM)" 4`
sleep 3
qdbus $qdbusRef Set "" value 1
qdbus $qdbusRef setLabelText "Eliminazione files in corso ..."
sleep 2.5
qdbus $qdbusRef Set "" value 2
sleep 2
qdbus $qdbusRef setLabelText "Sto sovrascrivendo 35 volte files vuoti sulla partizione infetta per evitare recuperi di essa"
qdbus $qdbusRef Set "" value 3
sleep 5.5
qdbus $qdbusRef Set "" value 4
sleep 0.3
qdbus $qdbusRef setLabelText "Pulitura finale ..."
qdbus $qdbusRef Set "" value 5
sleep 2
qdbus $qdbusRef close
kdialog --msgbox "Complimenti! Eliminazione della partizione $DATA(TM) nociva effettuata con successo!" --title "LinVir"
ah ... questo antivirus è efficace anche senza permessi di root :lol: