FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Enviar caracteres a varias ventanas a la vez
Posts: 654
Joined: Mon May 29, 2006 03:14 PM
Enviar caracteres a varias ventanas a la vez
Posted: Wed Feb 13, 2008 07:45 PM
Imaginaros que tengo abiertas varias ventanas de consola (CMD.EXE) con un telnet o ftp o directorio distinto en cada una.
Quiero mandar a TODAS las ventanas la misma secuencia de caracteres mas el intro.
¿ Como lo hago ?

Como ejemplo mirar el "Cluster Telnet (ctelnet)" de Solaris (Sun Cluster Console).





Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.

FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Enviar caracteres a varias ventanas a la vez
Posted: Wed Feb 13, 2008 08:06 PM

JM,

Necesitarias hacer una pequeña aplicación que enviase lo que escribieses a los handles de esas cuatro ventanas.

El problema es que si son ventanas de consola, entonces no se les puede enviar mensajes. Si son ventanas normales, si.

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 654
Joined: Mon May 29, 2006 03:14 PM
Enviar caracteres a varias ventanas a la vez
Posted: Wed Feb 13, 2008 08:24 PM
Antonio Linares wrote:El problema es que si son ventanas de consola, entonces no se les puede enviar mensajes. Si son ventanas normales, si.

Bueno, parece que algo se puede hacer... ¿ no ?
Bueno pueden ser ventanas de una aplicación de telnet (como la telnet de NT, que funciona en Win2000/XP), no tiene que ser de consola.
Podríamos experimentar con varios NotePad.exe.
Explícame esto ultimo (Si son ventanas normales, si).

P.D.: Que rarito soy ¿ verdad ?, es que con lo de "altas, bajas, modificaciones, consultas, etc..." no me divierto :-)
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.

FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
Posts: 1445
Joined: Mon Oct 10, 2005 02:38 PM
Enviar caracteres a varias ventanas a la vez
Posted: Wed Feb 13, 2008 09:28 PM
JmGarcia wrote:
Antonio Linares wrote:El problema es que si son ventanas de consola, entonces no se les puede enviar mensajes. Si son ventanas normales, si.

Bueno, parece que algo se puede hacer... ¿ no ?
Bueno pueden ser ventanas de una aplicación de telnet (como la telnet de NT, que funciona en Win2000/XP), no tiene que ser de consola.
Podríamos experimentar con varios NotePad.exe.
Explícame esto ultimo (Si son ventanas normales, si).

P.D.: Que rarito soy ¿ verdad ?, es que con lo de "altas, bajas, modificaciones, consultas, etc..." no me divierto :-)


Empieza por capturar la ventana:

oWnd:WCapture( cTitle, .T. )

sigue con enviar a la ventana las pulsaciones de las teclas así:

FWKEYBOARD( oWnd, VK_INSERT )

a ver si tienes suerte.

Saludos
Carlos G.

/* *************************** */
FUNCTION FWKEYBOARD(OWND,NKEY)
OWND:SETFOCUS()
OWND:POSTMSG( WM_KEYDOWN, NKEY, 0)
RETURN NIL
/* *************************** */

Un Saludo

Carlos G.



FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

Posts: 654
Joined: Mon May 29, 2006 03:14 PM
Enviar caracteres a varias ventanas a la vez
Posted: Wed Feb 13, 2008 10:34 PM
FiveWiDi wrote:oWnd:WCapture( cTitle, .T. )

¿ Quien es oWnd ?

Me da error: Error description: Error BASE/1003 Variable does not exist: OWND
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.

FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
Posts: 1445
Joined: Mon Oct 10, 2005 02:38 PM
Enviar caracteres a varias ventanas a la vez
Posted: Thu Feb 14, 2008 08:07 AM
JmGarcia wrote:
FiveWiDi wrote:oWnd:WCapture( cTitle, .T. )

¿ Quien es oWnd ?

Me da error: Error description: Error BASE/1003 Variable does not exist: OWND


Perdón corrí demasido.

debe ser algo así:

oWnd := TWCapture:New( cTitle )

Busca en el foro Capture, y cTitle es el título de la ventana de la aplicación a la que quieres acceder.

Saludos
Carlos G.

Un Saludo

Carlos G.



FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

Posts: 682
Joined: Tue Feb 14, 2006 09:48 AM
Enviar caracteres a varias ventanas a la vez
Posted: Thu Feb 14, 2008 08:34 AM
Si tienes el telnet en ventanas normales, el tema lo puedes solucionar de la siguiente manera.

Primero tienes que capturar el manejador de la ventana donde esta el telnet, lo mas facil es localizar por el texto del captiion de ventana. Una vez tienes el manejador (hWnd), se trata de ir enviado mensjes a la ventana.

LOCAL hWnd1,hWnd2
hWnd1:=FindWindow(0,"cconsole: host rigor")
hWnd2:=FindWindow(0,"cconsole: host slash")
//Si hWnd>0 ventana encontrada

Envia(hWnd1, "texto que se envia")
Envia(hWnd2, "texto que se envia")
...
//--------------------------------
STATIC FUNCTION Envia(hWnd,uVal)
   LOCAL nLen,i
   IF ValType(uVal)=='N'
      uVal:=AllTrim(Str(Int(uVal)))  //asumo que no se usan decimales.
   ENDIF
   nLen:=Len(uVal)
   FOR i:=1 TO nLen
      SendMessage( hWnd, WM_KEYDOWN, Asc( SubStr(uVal,i,1)) )
   NEXT
RETURN NIL

Si te funciona puedes obtimizar el proceso guardando los manejadores en un array, y hacer el envio de teclas para todos los elementos del array.
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Enviar caracteres a varias ventanas a la vez
Posted: Thu Feb 14, 2008 11:18 AM

JM,

Por ventanas normales me refiero a ventanas que no sean de consola (las que se crean con "cmd")

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 654
Joined: Mon May 29, 2006 03:14 PM
Enviar caracteres a varias ventanas a la vez
Posted: Thu Feb 14, 2008 08:16 PM
Muchisimas gracias, Biel.

Biel EA6DD wrote:
SendMessage( hWnd, WM_KEYDOWN, Asc( SubStr(uVal,i,1)) )


Con WM_KEYDOWN no me funciona pero con WM_CHAR me funciona perfecto con ventanas de consola de MS-DOS (cmd.exe)
Es justo lo que quería.

Por seguir experimentando he probado con el BlocDeNotas y NO me funciona. Supongo que habrá que darle el foco mandarle los caracteres y después dar el foco de nuevo a la aplicación que maneja todo.

¿ Como le doy el foco a otra ventana ?
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.

FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Enviar caracteres a varias ventanas a la vez
Posted: Thu Feb 14, 2008 08:27 PM

JM,

> con WM_CHAR me funciona perfecto con ventanas de consola de MS-DOS (cmd.exe)

Pues es toda una sorpresa :-) Estás usando XP ?

> ¿ Como le doy el foco a otra ventana ?

SetFocus( hWnd )

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 654
Joined: Mon May 29, 2006 03:14 PM
Enviar caracteres a varias ventanas a la vez
Posted: Thu Feb 14, 2008 08:33 PM
Antonio Linares wrote:Pues es toda una sorpresa :-) Estás usando XP ?
Pues si con XP. Mañana lo probare con Win2000.

Antonio Linares wrote:SetFocus( hWnd )

¿ Y como vuelvo a tener el foco yo ?

¿ Y como cojo el "caption" o título de la ventana deseada ?
Esto último lo digo porque cuando ejecutas un FTP o TELNET (por ejemplo) el titulo de la ventana de comandos (simbolo del sistema) cambia. Y quisiera ir refrescando el array de títulos de ventanas.
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.

FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
Posts: 654
Joined: Mon May 29, 2006 03:14 PM
Enviar caracteres a varias ventanas a la vez
Posted: Fri Feb 15, 2008 03:05 PM
JmGarcia wrote:
Antonio Linares wrote:Pues es toda una sorpresa :-) Estás usando XP ?
Pues si con XP. Mañana lo probare con Win2000.

Pues probado en Windows2000, tambien funciona.

Seguiremos informando...
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.

FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
Posts: 654
Joined: Mon May 29, 2006 03:14 PM
Enviar caracteres a varias ventanas a la vez
Posted: Mon Feb 18, 2008 07:39 PM

Ahora me encuentro con el problema de como enviar a otra ventana secuencias de caracteres como Ctrl-C o Ctrl-D...
Con la opcion WM_CHAR no vale.

Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.

FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
Posts: 20
Joined: Fri Dec 16, 2011 04:17 PM
Re: Enviar caracteres a varias ventanas a la vez
Posted: Tue Dec 20, 2011 02:42 PM

Hola JM, me pregunto si pudiste resolver el tema de enviar pulsaciones de teclado, sucede que estoy tratando de interactuar con una sesion en vms (alphaserver), y entro perfecto, pero tengo la limitacion de solo poder usar el alfabeto completo y los numeros, ningun otro simbolo, por cierto, utilice:
SendMessage( hWnd, __KEYBOARD(CHR(NN)) ) y funciona perfecto pero como ya dije, solo para letras y numeros,
cualquier adelanto que hayas tenido se agradecera.
He probado con telnet y powerterm y con ambos sucede lo mismo.
Saludos.
Roberto.

Continue the discussion