Enviar Texto a otra ventana

Post Reply
miarcod
Posts: 203
Joined: Tue Oct 11, 2005 2:17 pm

Enviar Texto a otra ventana

Post by miarcod »

Hola buenos dias,

Quiero enviar un texto desde una ventana para que se muestre en otra venta que está corriendo al mismo tiempo
Alguien podría darme un pequeño ejemplo
Gracias

JESUS MARIN
Posts: 199
Joined: Wed Jan 02, 2019 8:36 am
Been thanked: 7 times

Re: Enviar Texto a otra ventana

Post by JESUS MARIN »

Jesús Marín
deumare@gmail.com
JESUS MARIN
Posts: 199
Joined: Wed Jan 02, 2019 8:36 am
Been thanked: 7 times

Re: Enviar Texto a otra ventana

Post by JESUS MARIN »

Code: Select all | Expand

FUNCTION New4(oApp,oWndPrincipal)

LOCAL oWnd
LOCAL oBar, oFont, oFont2

LOCAL oGet1, cVar1:=SPACE(100)
LOCAL oDlg, oSay, cSay:="texto"


   DEFINE WINDOW MDICHILDFOLDER oWnd OF oWndPrincipal TITLE "Text -> Win"
   DEFINE FONT oFont  NAME "Segoe UI Light" SIZE 0,-16
   DEFINE FONT oFont2 NAME "Segoe UI Light" SIZE 0,-14

oBar := TBar():NewAt( 41, 0, 2440, 35,,, oWnd, .f.,,,.f. )
oBar:SetColor(CLR_BLACK,CLR_WHITE)
oBar:bRClicked := { | a,b | oWnd:MenuFolders(,a+40,b) }
Botones_generales(oBar,oWndPrincipal,oApp)


@150,20 GET oGet1 VAR cVar1 OF oWnd SIZE 200,25 FONT oFont PIXEL
  oGet1:bChange := { || oSay:SetText(cVar1) }

  DEFINE DIALOG oDlg FROM 150,300 TO 250,500 OF oWnd PIXEL
     @10,10 SAY oSay VAR cSay OF oDlg SIZE 200,22 FONT oFont2 PIXEL UPDATE
  ACTIVATE DIALOG oDlg NOWAIT



   ACTIVATE WINDOW oWnd
   oFont:End()
   oFont2:End()

RETURN(NIL)
Jesús Marín
deumare@gmail.com
User avatar
Antonio Linares
Site Admin
Posts: 44508
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 717 times
Been thanked: 311 times
Contact:

Re: Enviar Texto a otra ventana

Post by Antonio Linares »

Cada ventana pertenece a una aplicación diferente ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
karinha
Posts: 8716
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Has thanked: 33 times
Been thanked: 51 times
Contact:

Re: Enviar Texto a otra ventana

Post by karinha »

Code: Select all | Expand

// C:\FWH2603\SAMPLES\MIARCOD.PRG

#include "FiveWin.ch"

// Ventana 1
FUNCTION VentanaPrincipal()

   LOCAL oDlg, oBtn2, cNome := "FiveWin the Best", oBtn, oBrush

   DEFINE BRUSH oBrush COLOR CLR_CYAN
   
DEFINE DIALOG oDlg TITLE "Ventana 1 Para Ventana 2" BRUSH oBrush ; SIZE 400, 150 oDlg:lHelpIcon := .F. @ 1, 1 GET cNome OF oDlg SIZE 70, 12 COLOR "W/G" @ 2, 1 BUTTON oBtn PROMPT "Ventana 2" ; ACTION SegundoVentana( cNome ) // Passando a variavel @ 2, 20 BUTTON oBtn2 PROMPT "&Cerrar" ACTION( oDlg:End() ) CANCEL ACTIVATE DIALOG oDlg CENTERED RETURN NIL // Ventana 2 FUNCTION SegundoVentana( cParametro ) // Recebendo o parametro LOCAL oDlg2, oBtn2, oBrush
DEFINE BRUSH oBrush GRADIENT { { 0.4, nRGB( 75, 144, 223 ), nRGB( 41, 85, 145 ) },; { 0.6, nRGB( 24, 61, 118 ), nRGB( 50, 95, 158 ) } } DEFINE DIALOG oDlg2 TITLE "Ventana 2" SIZE 400, 150 BRUSH oBrush TRANSPARENT oDlg2:lHelpIcon := .F. @ 1, 1 SAY "Valor recebido: " + cParametro of oDlg2 SIZE 100, 16 ; COLOR CLR_WHITE TRANSPARENT ADJUST UPDATE @ 2, 1 BUTTON oBtn2 PROMPT "&Salida" ACTION( oDlg2:End() ) ACTIVATE DIALOG oDlg2 CENTERED RETURN NIL // FIN / END

Regards, saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
miarcod
Posts: 203
Joined: Tue Oct 11, 2005 2:17 pm

Re: Enviar Texto a otra ventana

Post by miarcod »

Si, cada ventana es una aplicación independiente.

La idea es montar una ventana de log para ir enviando mensajes desde otra aplicación. Si la ventana está disponible mostraría el mensaje, y si no ese mensaje se pierde.

Se me ocurre hacerlo utilizando un fichero de texto que la ventana de log está leyendo constantemente, pero queria saber si es posible enviar un mensaje directamente a otra ventana que está corriendo en el PC.

Un saludo.

User avatar
karinha
Posts: 8716
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Has thanked: 33 times
Been thanked: 51 times
Contact:

Re: Enviar Texto a otra ventana

Post by karinha »

Algo asi?

Code: Select all | Expand

App A: MemoWrit("temp.txt", "texto da variavel")

App B: cTexto := MemoRead("temp.txt")

Code: Select all | Expand

// Após ler a balança
cPeso := "10.50"
IF (nHandle := fCreate("peso.txt")) != -1
    fWrite(nHandle, cPeso)
    fClose(nHandle)
ENDIF

Code: Select all | Expand

// Ao ler o peso
IF file("peso.txt")
    cPeso := memoread("peso.txt")
    ? "Peso atual: " + cPeso
ENDIF

Regards, saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
Posts: 8716
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Has thanked: 33 times
Been thanked: 51 times
Contact:

Re: Enviar Texto a otra ventana

Post by karinha »

Maestro Antônio, ¿tiene algún ejemplo de cómo usar SendMessage( hWnd, nMsg, wParam, lParam) para enviar un mensaje de un archivo .EXE a otro?

Gracias, tks.

Regards, saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
miarcod
Posts: 203
Joined: Tue Oct 11, 2005 2:17 pm

Re: Enviar Texto a otra ventana

Post by miarcod »

Gracias
Lo de los ficheros ya lo había pensado, lo que realmente busco es lo que le pides tu a Antonio
Poder enviar un mensaje a otro exe que se encuentre en ejecución.
Un saludo

User avatar
karinha
Posts: 8716
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Has thanked: 33 times
Been thanked: 51 times
Contact:

Re: Enviar Texto a otra ventana

Post by karinha »

La IA dijo:

// C:\FWH2603\SAMPLES\SENDMES1.PRG

Code: Select all | Expand

#include "FiveWin.ch"

#define WM_COPYDATA 0x004A

FUNCTION Main()

   LOCAL oWnd, oBtn

   DEFINE WINDOW oWnd TITLE "Emisor"

   @ 2, 2 BUTTON oBtn PROMPT "Enviar Mensaje" ;
      ACTION EnviarDatos("ReceptorTitle", "Hola desde el emisor")

   ACTIVATE WINDOW oWnd

RETURN NIL

FUNCTION EnviarDatos(cTitle, cText)

   LOCAL hWnd := FindWindow(0, cTitle) // Busca la ventana por título
   LOCAL nLen := Len(cText)
   LOCAL nResult

   IF hWnd != 0

  // WM_COPYDATA requiere una estructura COPYDATASTRUCT
  // En Harbour/Fivewin, a veces se puede pasar directamente con SendMessage
  // o usando estructuras de la API.
  
  // Enfoque simplificado con SendMessage
  SendMessage(hWnd, WM_COPYDATA, 0, cText)

  MsgInfo("Mensaje enviado")

   ELSE

  MsgStop("Ventana receptora no encontrada")

   ENDIF

RETURN NIL

// FIN / END
[code]

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
Posts: 8716
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Has thanked: 33 times
Been thanked: 51 times
Contact:

Re: Enviar Texto a otra ventana

Post by karinha »

// C:\FWH2603\SAMPLES\SENDMES2.PRG

Code: Select all | Expand

#include "FiveWin.ch"

#define WM_COPYDATA 0x004A

FUNCTION Main()

   LOCAL oWnd

   DEFINE WINDOW oWnd TITLE "ReceptorTitle" // Título único
   
// Sobrescribir el manejador de eventos de la ventana oWnd:bHandleEvent = {|nMsg, nWParam, nLParam| ReceptorWin(nMsg, nWParam, nLParam, oWnd)}
ACTIVATE WINDOW oWnd RETURN NIL FUNCTION ReceptorWin(nMsg, nWParam, nLParam, oWnd) IF nMsg == WM_COPYDATA // nLParam contiene la dirección de los datos en WM_COPYDATA // Aquí se procesa el mensaje (necesario manejar COPYDATASTRUCT) MsgInfo("Mensaje recibido: " + cValToChar(nLParam)) RETURN 0 // Mensaje procesado ENDIF RETURN oWnd:HandleEvent(nMsg, nWParam, nLParam) // FIN / END

Regards, saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
Posts: 8716
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Has thanked: 33 times
Been thanked: 51 times
Contact:

Re: Enviar Texto a otra ventana

Post by karinha »

Mira:

viewtopic.php?p=5456#p5456

Regards, saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
miarcod
Posts: 203
Joined: Tue Oct 11, 2005 2:17 pm

Re: Enviar Texto a otra ventana

Post by miarcod »

Gracias, voy a probar
Un saludo

Post Reply