https://foro.gambas-es.org/viewtopic.php?f=5&t=4445
-----------------------------------
vuott
Domingo, 08 Marzo 2015, 16:43

Trasladar A Un Texto A Editor Kate Mediante DBus
-----------------------------------
[color=#FF0000][b]H[/b][/color][color=#00FF4C][b]O[/b][/color][color=#FFFF00][b]L[/b][/color][color=#0000FF]A[/color] amigos,
os dejo este código demostrativo, escrito por el usuario [i]milio[/i] del foro gambas-it, para enviar texto [i]directamente[/i] a el editor Kate (KDE) mediante el recurso [color=#CC0000]DBUS[/color].
Se necesita activar el componente [i]gb.dbus[/i] .

[code linenumbers=false syntax=gambas]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[/code]


-----------------------------------
Shell
Domingo, 08 Marzo 2015, 19:54

Re: Trasladar A Un Texto A Editor Kate Mediante DBus
-----------------------------------
Como estudio de procesos está muy interesante. Nunca he usado el recurso DBUS.  :roll:


-----------------------------------
jsbsan
Domingo, 08 Marzo 2015, 20:59

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

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

Saludos


-----------------------------------
jsbsan
Domingo, 08 Marzo 2015, 21:27

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?


-----------------------------------
vuott
Domingo, 08 Marzo 2015, 22:18

Re: Trasladar A Un Texto A Editor Kate Mediante DBus
-----------------------------------
[quote user="jsbsan" post="25358"]Vuott:

Lo he probado (instalando kate, porque no lo tenia en mi sistema), pero no hace nada...¿tengo que usar el escritorio KDE?[/quote]
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.


-----------------------------------
jsbsan
Lunes, 09 Marzo 2015, 00:06

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

[quote]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.[/quote]

Ahora si !!!   :mryellow:  :mryellow:  :mryellow: 

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?


-----------------------------------
vuott
Lunes, 09 Marzo 2015, 01:55

Re: Trasladar A Un Texto A Editor Kate Mediante DBus
-----------------------------------
[quote user="jsbsan" post="25360"]
¿es posible mandar datos a hojas de cálculo, por ejemplo libreoffice? Seria interesante para pasar datos.[/quote]
No se. Tendrías que probar.
El problema, pero, yo creo está aqui:
[code linenumbers=false syntax=gambas]...["org.kde.kate-" & $oProc.Id]...[/code]
es decir, "[i]org.kde.kate-[/i]" se refiere a Kate; ...y para libreoffice ? O para Gedit ? Cual es el comando ? Yo no lo se. No conozco [i]DBus.[/i]   [img]http://www.gambas-it.org/smf/Smileys/gambasit-emoticons/undecided.gif[/img]


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 [i]gb.desktop[/i] y [i]gb.desktop.x11[/i];
- poner sobre el Form un objecto Editor y dos Button.
[code linenumbers=false syntax=gambas]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[/code]   [img]http://www.gambas-it.org/smf/Smileys/gambasit-emoticons/rolleyes.gif[/img]


-----------------------------------
shordi
Lunes, 09 Marzo 2015, 08:57

Re: Trasladar A Un Texto A Editor Kate Mediante DBus
-----------------------------------
[quote]¿es posible mandar datos a hojas de cálculo, por ejemplo libreoffice? Seria interesante para pasar datos.
[/quote]

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:

[code linenumbers=false syntax=gambas] Shell "libreoffice --headless --convert-to ods \"" & path_a_mificherocsv & "\""[/code]

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


-----------------------------------
jsbsan
Lunes, 09 Marzo 2015, 12:33

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....


-----------------------------------
shordi
Lunes, 09 Marzo 2015, 12:41

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.


-----------------------------------
jguardon
Lunes, 09 Marzo 2015, 19:21

Re: Trasladar A Un Texto A Editor Kate Mediante DBus
-----------------------------------
El ejemplo que trae gambas de D-Bus, genera una lista de todos los programas que registran un "canal" o varios para comunicarse con ellos. De ahí se puede sacar el comando específico (en realidad es un espacio de nombre y un objeto dentro de éste que responde a los mensajes).

Para más información, podéis ver éste enlace: http://es.wikipedia.org/wiki/D-Bus

Saludos


-----------------------------------
tercoIDE
Sabado, 23 May 2020, 23:28

Re: Trasladar A Un Texto A Editor Kate Mediante DBus
-----------------------------------
Estamos buscando formas de comunicación entre GauchoCAD y un posible add-on o plugin. Aparentemente este componente permitiría el dialogo entre dos apps activas. 

La idea general es que al ejecutarse el pluggin, le indique al programa madre que agregue unos botones y menús para que el user comience a usar sus capacidades.

Si alguien tiene la idea exacta de como funciona, y puede explicarlo con palabras (o un ejemplo funcional) que un viejo de 50 años pueda entender, lo agradeceré.


-----------------------------------
gambafeliz
Domingo, 24 May 2020, 12:45

Re: Trasladar A Un Texto A Editor Kate Mediante DBus
-----------------------------------
[quote user="tercoIDE" post="48592"]Estamos buscando formas de comunicación entre GauchoCAD y un posible add-on o plugin. Aparentemente este componente permitiría el dialogo entre dos apps activas. 

La idea general es que al ejecutarse el pluggin, le indique al programa madre que agregue unos botones y menús para que el user comience a usar sus capacidades.

Si alguien tiene la idea exacta de como funciona, y puede explicarlo con palabras (o un ejemplo funcional) que un viejo de 50 años pueda entender, lo agradeceré.[/quote]

Solo te digo que lo que buscas es JSON es un lenguaje de marcación apropiado para lo que quieres hacer. 

Postdata: Prefiero que lo investigues mas que yo te diga que es en si. Otra cosa, solo te digo que es tan potente que puede pasar objetos enteres, código super-complejo, etc,etc....


-----------------------------------
tercoIDE
Domingo, 24 May 2020, 22:29

Re: Trasladar A Un Texto A Editor Kate Mediante DBus
-----------------------------------
[quote]Solo te digo que lo que buscas es JSON es un lenguaje de marcación apropiado para lo que quieres hacer. 
[/quote]

Voy a estudiar ese protocolo que mencionas. 
Gracias.


