Trasladar A Un Texto A Editor Kate Mediante DBus


Ir a la página 1, 2  Siguiente

Objetivo: Trasladar A Un Texto A Editor Kate Mediante DBus
HOLA amigos,
os dejo este código demostrativo, escrito por el usuario milio del foro gambas-it, para enviar texto directamente a el editor Kate (KDE) mediante el recurso DBUS.
Se necesita activar el componente gb.dbus .

Private $oKate As DBusProxy
Private $oTimer As Timer
Private $iCont As Integer
Private $oProc As Process

Public Sub _new()

$oTimer = New Timer As "Wait"
$oTimer.Delay = 500

End

Public Sub Form_Open()

End

Public Sub Kate_Kill()

Button2.Enabled = False
Button1.Enabled = True
Message.Info("Cierre de Kate")

End

Public Sub Button1_Click()
Dim oProc As Process

Last.Enabled = False

$oProc = Exec ["kate"] For Read As "Kate"
$iCont = 0
$oTimer.Start

End

Public Sub Wait_Timer()

Try $oKate = DBus["org.kde.kate-" & $oProc.Id]["/Kate/Document/1"]
If Not Error Then
$oTimer.Stop()
Button2.Enabled = True
Return
Endif
Inc $iCont
If $iCont = 10 Then
$oTimer.Stop()
Message.Error("Imposible conectarse a DBus")
Button1.Enabled = True
Endif

End

Public Sub Button2_Click()

$oKate.setText(Editor1.Text)

End

última edición por vuott el Domingo, 08 Marzo 2015, 16:45; editado 1 vez
Perfil MP  
Objetivo: Re: Trasladar A Un Texto A Editor Kate Mediante DBus
Como estudio de procesos está muy interesante. Nunca he usado el recurso DBUS.

Objetivo: Re: Trasladar A Un Texto A Editor Kate Mediante DBus
Vuott:

Muy interesante... gracias por compartir....

Saludos

Objetivo: Re: Trasladar A Un Texto A Editor Kate Mediante DBus
Vuott:

Lo he probado (instalando kate, porque no lo tenia en mi sistema), pero no hace nada...¿tengo que usar el escritorio KDE?

Objetivo: Re: Trasladar A Un Texto A Editor Kate Mediante DBus
jsbsan escribió:  
Vuott:

Lo he probado (instalando kate, porque no lo tenia en mi sistema), pero no hace nada...¿tengo que usar el escritorio KDE?

Creo que sì, jsbsan.
Yo lo usé hace tiempo y tenía el escritorio KDE.

Claramente los pasos son:
1) clic sobre el Button1 para abrir Kate;
2) escribir el texto en el objecto Editor de programa;
3) clic sobre el Button2 para eviar el texto.

última edición por vuott el Domingo, 08 Marzo 2015, 22:22; editado 2 veces
Perfil MP  
Objetivo: Re: Trasladar A Un Texto A Editor Kate Mediante DBus
Vuott:

Citar:
Claramente los pasos son:
1) clic sobre el Button1 para abrir Kate;
2) escribir el texto en el objecto Editor de programa;
3) clic sobre el Button2 para eviar el texto.


Ahora si !!!

No entendí bien lo que hacia cada botón.
Y me ha funcionado sin tener instalado usar KDE.

Posible utilidad....
¿es posible mandar datos a hojas de cálculo, por ejemplo libreoffice? Seria interesante para pasar datos.

¿alguna aplicación práctica se le ocurre a alguien más?

Objetivo: Re: Trasladar A Un Texto A Editor Kate Mediante DBus
jsbsan escribió:  

¿es posible mandar datos a hojas de cálculo, por ejemplo libreoffice? Seria interesante para pasar datos.

No se. Tendrías que probar.
El problema, pero, yo creo está aqui:
...["org.kde.kate-" & $oProc.Id]...

es decir, "org.kde.kate-" se refiere a Kate; ...y para libreoffice ? O para Gedit ? Cual es el comando ? Yo no lo se. No conozco DBus. undecided


Para enviar texto desde gambas a Gedit yo he escrito este codigo (no utiliza DBus) un poco enreversado (...todo un juego de Focus).
Se necesita:
- activar los componentes gb.desktop y gb.desktop.x11;
- poner sobre el Form un objecto Editor y dos Button.
Private dw As DesktopWindow


Public Sub Form_Open()

Shell "gedit"

' Salimos del ciclo cuando la ventana de Gedit aparece:
Do
Wait 0.1
Loop Until Desktop.FindWindow(Null, "*gedit*", Null).Count > 0

dw = New DesktopWindow(Desktop.FindWindow(Null, "*gedit*", Null)[0])

With Me
.Show
.Center
Wait 0.1
.SetFocus
End With

End


Public Sub Button1_Click() ' Esta sub-procedura escribe en Gedit

' Da el Focus a la ventana de Gedit:
dw.Activate()

Wait 0.1

' Escribe en Gedit "todo el texto visible" en el objecto Editor:
Desktop.SendKeys(Editor1.Text)

' Esta da el Focus a el programa Gambas:
Desktop.ActiveWindow = Me.Id

Editor1.Text = Null

End


Public Sub Button2_Click() ' Esta sub-procedura cierra el programa Gambas

Quit

End
rolleyes

última edición por vuott el Lunes, 09 Marzo 2015, 02:04; editado 4 veces
Perfil MP  
Objetivo: Re: Trasladar A Un Texto A Editor Kate Mediante DBus
Citar:
¿es posible mandar datos a hojas de cálculo, por ejemplo libreoffice? Seria interesante para pasar datos.


Para ese viaje no hace falta tanta alforja, que se dice en mi pueblo. Si quieres documentos de LibreOffice, entonces es que tienes LibreOffice instalados ¿no?
Prueba, pues, esto:

Shell "libreoffice --headless --convert-to ods \"" & path_a_mificherocsv & "\""


Donde dice ods, puedes poner cualquier formato de fichero que entienda libreOffice: doc, odt, xls, etc. etc.
No es perfecto y tiene algunas limitaciones, pero para lo normal va de maravilla.

Saludos

Perfil MP  
Objetivo: Re: Trasladar A Un Texto A Editor Kate Mediante DBus
Shordi:

Imagino que lo Dbus, tambien servirá para interactuar con el programa ... poner filas de colores, poner formulas, y aplicarlas....

Objetivo: Re: Trasladar A Un Texto A Editor Kate Mediante DBus
Pues no sé, no he usado nunca este componente... pero eso me da una idea para un problema que tengo desde siempre... aunque mejor lo pongo en otro hilo, a ver si a alguien se le ocurre algo.

Perfil MP  
Ir a la página 1, 2  Siguiente

Página 1 de 2


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 6.6169s (PHP: -97% SQL: 197%)
Consultas SQL: 48 - Debug off - GZIP Activado