Page 1 of 1

Enviar Texto a otra ventana

Posted: Tue May 05, 2026 9:09 am
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


Re: Enviar Texto a otra ventana

Posted: Tue May 05, 2026 11:54 am
by JESUS MARIN

Re: Enviar Texto a otra ventana

Posted: Tue May 05, 2026 11:55 am
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)

Re: Enviar Texto a otra ventana

Posted: Tue May 05, 2026 12:07 pm
by Antonio Linares

Cada ventana pertenece a una aplicación diferente ?


Re: Enviar Texto a otra ventana

Posted: Tue May 05, 2026 2:07 pm
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.


Re: Enviar Texto a otra ventana

Posted: Tue May 05, 2026 2:53 pm
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.


Re: Enviar Texto a otra ventana

Posted: Tue May 05, 2026 3:05 pm
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.


Re: Enviar Texto a otra ventana

Posted: Tue May 05, 2026 3:14 pm
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.


Re: Enviar Texto a otra ventana

Posted: Tue May 05, 2026 6:46 pm
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


Re: Enviar Texto a otra ventana

Posted: Tue May 05, 2026 7:24 pm
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.

Re: Enviar Texto a otra ventana

Posted: Tue May 05, 2026 7:27 pm
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.


Re: Enviar Texto a otra ventana

Posted: Tue May 05, 2026 7:40 pm
by karinha

Mira:

viewtopic.php?p=5456#p5456

Regards, saludos.


Re: Enviar Texto a otra ventana

Posted: Wed May 06, 2026 7:13 am
by miarcod

Gracias, voy a probar
Un saludo