Página 1 de 1

Incrustar notepad en un control

Publicado: Mar Jul 27, 2010 1:11 am
por buzonjmartial
Hola,
Estoy probando a incrustar notepad.exe una vez ejecutado en un control,
por ejemplo un TBevel.
Con findwindow(cTitle) encuentro el handle del notepad en ejecución.
Pero no encuentro la manera en xailer de incrustarlo. He visto ejemplos
en VB con el Api de windows, pero en xailer nada me va como dicen los
ejemplos.
¿Alguien me puede echar un cable de por donde van los tiros?
Da igual el notepad o cualquier otra aplicación ejecutable.
Un Saludo,
Joaquí­n Martí­nez

Incrustar notepad en un control

Publicado: Jue Jul 29, 2010 3:05 am
por nospam
Joaquin:
No seria mas facil meter un TRichEdit?
terminas antes y tienes un editor tipo Word nativo
Saludos
Rene Flores
http://www.ciber-tec.com
El 26/07/2010 06:11 p.m., "Joaquí­n Martí­nez." escribió:
> Hola,
>
> Estoy probando a incrustar notepad.exe una vez ejecutado en un control,
> por ejemplo un TBevel.
>
> Con findwindow(cTitle) encuentro el handle del notepad en ejecución.
>
> Pero no encuentro la manera en xailer de incrustarlo. He visto ejemplos
> en VB con el Api de windows, pero en xailer nada me va como dicen los
> ejemplos.
>
> ¿Alguien me puede echar un cable de por donde van los tiros?
>
> Da igual el notepad o cualquier otra aplicación ejecutable.
>
> Un Saludo,
> Joaquí­n Martí­nez

Incrustar notepad en un control

Publicado: Jue Jul 29, 2010 8:52 am
por buzonjmartial
Hola René,
He puesto el Notepad como ejemplo, pero realmente me referí­a
ha incrustar un .exe ejecutándose en un Bevel por ejemplo.
Lo he conseguido incrustar a "pelo" en un bevel heredando de la
Tcontrol de Xailer, pero inexplicablemente el notepad funciona
bien, pero el Wordpad en cambio, al moverte por los Tedits
con el Tabulador, al llegar al Wordpad da un GPF impresionante.
De ahí­ vení­a la pregunta, si los que conocen Xailer más a fondo,
pudieran indicar una pequeñí­sima muestra de si se pude hacer sin
problemas o con Xailer no se puede con garantí­as.
He visto ejemplos en VB que parece que funcionan bien.
Un Saludo y gracias,
Joaquí­n
El 29/07/10 3:05, René Flores <"rflores escribió:
> Joaquin:
>
> No seria mas facil meter un TRichEdit?
> terminas antes y tienes un editor tipo Word nativo
>
> Saludos
>
> Rene Flores
> http://www.ciber-tec.com
>
> El 26/07/2010 06:11 p.m., "Joaquí­n Martí­nez." escribió:
>> Hola,
>>
>> Estoy probando a incrustar notepad.exe una vez ejecutado en un control,
>> por ejemplo un TBevel.
>>
>> Con findwindow(cTitle) encuentro el handle del notepad en ejecución.
>>
>> Pero no encuentro la manera en xailer de incrustarlo. He visto ejemplos
>> en VB con el Api de windows, pero en xailer nada me va como dicen los
>> ejemplos.
>>
>> ¿Alguien me puede echar un cable de por donde van los tiros?
>>
>> Da igual el notepad o cualquier otra aplicación ejecutable.
>>
>> Un Saludo,
>> Joaquí­n Martí­nez
>

Incrustar notepad en un control

Publicado: Jue Jul 29, 2010 9:34 am
por ignacio
Joaquin,
Lo que está haciendo no tiene mucho sentido. Los programas ejecutables no
está concebidos para ser utilizados dentro de otra ventana que no sea el
propio escritorio. El GPF que se produce, seguramente que no lo produce
Xailer, si no más bien la propia aplicación que intenta incrustar.
Un saludo
""Joaquí­n Martí­nez."" <buzonjmartial@gmail.com> escribió en el mensaje de
noticias:4c51253b$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Hola René,
>
> He puesto el Notepad como ejemplo, pero realmente me referí­a
> ha incrustar un .exe ejecutándose en un Bevel por ejemplo.
>
> Lo he conseguido incrustar a "pelo" en un bevel heredando de la
> Tcontrol de Xailer, pero inexplicablemente el notepad funciona
> bien, pero el Wordpad en cambio, al moverte por los Tedits
> con el Tabulador, al llegar al Wordpad da un GPF impresionante.
>
> De ahí­ vení­a la pregunta, si los que conocen Xailer más a fondo,
> pudieran indicar una pequeñí­sima muestra de si se pude hacer sin
> problemas o con Xailer no se puede con garantí­as.
>
> He visto ejemplos en VB que parece que funcionan bien.
>
> Un Saludo y gracias,
> Joaquí­n
>
>
>
>
> El 29/07/10 3:05, René Flores <"rflores escribió:
>> Joaquin:
>>
>> No seria mas facil meter un TRichEdit?
>> terminas antes y tienes un editor tipo Word nativo
>>
>> Saludos
>>
>> Rene Flores
>> http://www.ciber-tec.com
>>
>> El 26/07/2010 06:11 p.m., "Joaquí­n Martí­nez." escribió:
>>> Hola,
>>>
>>> Estoy probando a incrustar notepad.exe una vez ejecutado en un control,
>>> por ejemplo un TBevel.
>>>
>>> Con findwindow(cTitle) encuentro el handle del notepad en ejecución.
>>>
>>> Pero no encuentro la manera en xailer de incrustarlo. He visto ejemplos
>>> en VB con el Api de windows, pero en xailer nada me va como dicen los
>>> ejemplos.
>>>
>>> ¿Alguien me puede echar un cable de por donde van los tiros?
>>>
>>> Da igual el notepad o cualquier otra aplicación ejecutable.
>>>
>>> Un Saludo,
>>> Joaquí­n Martí­nez
>>
>

Incrustar notepad en un control

Publicado: Jue Jul 29, 2010 10:11 am
por buzonjmartial
Ignacio,
he adjuntado una imágen, el problema parece estar en intentar dar el
foco al wordpad, pero a partir de ahí­ me pierdo.
Si se pudiera anular que gonextcontrol() intentara posicionarse en ese
control, deberí­a funcionar.
He probado ltabstop a .F. y también falla, sin embargo, con el notepad
no falla y aparte, el foco vuelve correctamente al botón del Form.
Un Saludo,
Joaquí­n
El 29/07/10 9:34, Ignacio Ortiz de Zúñiga escribió:
> Joaquin,
>
> Lo que está haciendo no tiene mucho sentido. Los programas ejecutables
> no está concebidos para ser utilizados dentro de otra ventana que no sea
> el propio escritorio. El GPF que se produce, seguramente que no lo
> produce Xailer, si no más bien la propia aplicación que intenta incrustar.
>
> Un saludo
>
> ""Joaquí­n Martí­nez."" <buzonjmartial@gmail.com> escribió en el mensaje
> de noticias:4c51253b$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
>> Hola René,
>>
>> He puesto el Notepad como ejemplo, pero realmente me referí­a
>> ha incrustar un .exe ejecutándose en un Bevel por ejemplo.
>>
>> Lo he conseguido incrustar a "pelo" en un bevel heredando de la
>> Tcontrol de Xailer, pero inexplicablemente el notepad funciona
>> bien, pero el Wordpad en cambio, al moverte por los Tedits
>> con el Tabulador, al llegar al Wordpad da un GPF impresionante.
>>
>> De ahí­ vení­a la pregunta, si los que conocen Xailer más a fondo,
>> pudieran indicar una pequeñí­sima muestra de si se pude hacer sin
>> problemas o con Xailer no se puede con garantí­as.
>>
>> He visto ejemplos en VB que parece que funcionan bien.
>>
>> Un Saludo y gracias,
>> Joaquí­n
>>
>>
>>
>>
>> El 29/07/10 3:05, René Flores <"rflores escribió:
>>> Joaquin:
>>>
>>> No seria mas facil meter un TRichEdit?
>>> terminas antes y tienes un editor tipo Word nativo
>>>
>>> Saludos
>>>
>>> Rene Flores
>>> http://www.ciber-tec.com
>>>
>>> El 26/07/2010 06:11 p.m., "Joaquí­n Martí­nez." escribió:
>>>> Hola,
>>>>
>>>> Estoy probando a incrustar notepad.exe una vez ejecutado en un control,
>>>> por ejemplo un TBevel.
>>>>
>>>> Con findwindow(cTitle) encuentro el handle del notepad en ejecución.
>>>>
>>>> Pero no encuentro la manera en xailer de incrustarlo. He visto ejemplos
>>>> en VB con el Api de windows, pero en xailer nada me va como dicen los
>>>> ejemplos.
>>>>
>>>> ¿Alguien me puede echar un cable de por donde van los tiros?
>>>>
>>>> Da igual el notepad o cualquier otra aplicación ejecutable.
>>>>
>>>> Un Saludo,
>>>> Joaquí­n Martí­nez
>>>
>>
--

Incrustar notepad en un control

Publicado: Lun Ago 02, 2010 1:28 pm
por Bingen Ugaldebere
/*
* Proyecto: CapturarExes
* Fichero: Form1.prg
* Descripción:
* Autor:
* Fecha: 02/08/2010
*/
#include "Xailer.ch"
CLASS TForm1 FROM TForm
COMPONENT oScrollBox1
COMPONENT oScrollBox2
METHOD CreateForm()
METHOD FormShow( oSender )
ENDCLASS
#include "Form1.xfm"
//---------------------------------------------------------- --------------------
METHOD FormShow( oSender ) CLASS TForm1
Local nHandle,nHandle2
Execute("Calc.exe")
Sleep(1000)
nHandle := GETWNDHND("Calculadora")
if nHandle != 0
Setpar(nHandle,::oScrollBox1:Handle)

MoveWindow(nHandle,0,0,::oScrollBox1:nWidth,::oScrollBox1:nH eight,.t.)
else
MsgAlert("Imposible instanciar Calculadora")
endif
nHandle2 := GETWNDHND("Xailer - CapturarExes")
if nHandle2 !=0
Setpar(nHandle2,::oScrollBox2:Handle)

MoveWindow(nHandle2,0,0,::oScrollBox2:nWidth,::oScrollBox2:n Height,.t.)
else
MsgAlert("Imposible instanciar Xailer")
endif
RETURN Nil
//---------------------------------------------------------- --------------------
#pragma BEGINDUMP
#include "windows.h"
#include "xailer.h"
HB_FUNC( SETPAR )
{
HWND hWnd;
hWnd = SetParent( LongToHandle(hb_parnl( 1 )),
LongToHandle(hb_parnl( 2 )));
hb_retnl ( (long) hWnd );
}
HB_FUNC( GETWNDHND )
{
HWND hWnd;
hWnd = FindWindow(NULL, hb_parc( 1 ));
hb_retnl ((long) hWnd );
}
HB_FUNC( MOVEWNDHND )
{
MoveWindow(LongToHandle(hb_parnl( 1 )),hb_parnl( 2 ),hb_parnl( 3
),hb_parnl( 4 ),hb_parnl( 5 ),hb_parl( 6 ));
}
#pragma ENDDUMP
//---------------------------------------------------------- -------------------

Incrustar notepad en un control

Publicado: Mar Ago 03, 2010 10:06 am
por buzonjmartial
Gracias Bingen,
Pero has probado tu ejemplo con una pantalla como la de mi imágen y el
Wordpad ??
Es decir, Creas un form con 3 Tedits por ejemplo, a continuación un
TBevel e incrustas con tu clase en el TBevel el wordpad.
Hasta ahí­ me funciona, luego, estando en el TEdit nº 1, vas avanzando
con Tabular por los controles, cuando llegues al TEdit nº 3 y le des a
tabular, a mí­ me da un GPF si es el WordPad, no si es el notepad o la
calculadora.
¿Podrí­as comprobarlo?
Un Saludo,
Joaquí­n
El 02/08/10 13:28, Bingen Ugaldebere escribió:
> /*
> * Proyecto: CapturarExes
> * Fichero: Form1.prg
> * Descripción:
> * Autor:
> * Fecha: 02/08/2010
> */
>
> #include "Xailer.ch"
>
> CLASS TForm1 FROM TForm
>
> COMPONENT oScrollBox1
> COMPONENT oScrollBox2
>
> METHOD CreateForm()
> METHOD FormShow( oSender )
>
> ENDCLASS
>
> #include "Form1.xfm"
>
> //---------------------------------------------------------- --------------------
>
>
> METHOD FormShow( oSender ) CLASS TForm1
> Local nHandle,nHandle2
>
> Execute("Calc.exe")
>
> Sleep(1000)
>
> nHandle := GETWNDHND("Calculadora")
> if nHandle != 0
> Setpar(nHandle,::oScrollBox1:Handle)
>
> MoveWindow(nHandle,0,0,::oScrollBox1:nWidth,::oScrollBox1:nH eight,.t.)
> else
> MsgAlert("Imposible instanciar Calculadora")
> endif
>
>
>
> nHandle2 := GETWNDHND("Xailer - CapturarExes")
> if nHandle2 !=0
> Setpar(nHandle2,::oScrollBox2:Handle)
>
> MoveWindow(nHandle2,0,0,::oScrollBox2:nWidth,::oScrollBox2:n Height,.t.)
> else
> MsgAlert("Imposible instanciar Xailer")
> endif
>
>
> RETURN Nil
>
> //---------------------------------------------------------- --------------------
>
> #pragma BEGINDUMP
> #include "windows.h"
> #include "xailer.h"
>
>
> HB_FUNC( SETPAR )
> {
> HWND hWnd;
> hWnd = SetParent( LongToHandle(hb_parnl( 1 )), LongToHandle(hb_parnl(
> 2 )));
> hb_retnl ( (long) hWnd );
> }
>
> HB_FUNC( GETWNDHND )
> {
> HWND hWnd;
> hWnd = FindWindow(NULL, hb_parc( 1 ));
> hb_retnl ((long) hWnd );
> }
>
> HB_FUNC( MOVEWNDHND )
> {
> MoveWindow(LongToHandle(hb_parnl( 1 )),hb_parnl( 2 ),hb_parnl( 3
> ),hb_parnl( 4 ),hb_parnl( 5 ),hb_parl( 6 ));
> }
>
> #pragma ENDDUMP
>
>
>
> //---------------------------------------------------------- -------------------
>

Incrustar notepad en un control

Publicado: Mar Ago 03, 2010 10:24 am
por jfgimenez
Joaquí­n,
> he adjuntado una imágen, el problema parece estar en intentar dar el
> foco al wordpad, pero a partir de ahí­ me pierdo.
>
> Si se pudiera anular que gonextcontrol() intentara posicionarse en ese
> control, deberí­a funcionar.
>
> He probado ltabstop a .F. y también falla, sin embargo, con el notepad
> no falla y aparte, el foco vuelve correctamente al botón del Form.
El problema es que el wordpad no es un control, y mucho menos de Xailer. Y
lTabStop no se puede asignar para el wordpad, simplemente por esa razón. Por
favor, pon un pequeño ejemplo de cómo lo estás haciendo y le echaremos un
vistazo por si se pudiera hacer algo.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info

Incrustar notepad en un control

Publicado: Jue Ago 12, 2010 8:43 am
por Bingen Ugaldebere
Pues definitivamente ha de ser un error del WordPad, yo lo tengo
comprobado con Word 2003 y funciona.
De todas maneras no se por que quieres meter el wordpad, pero con lo
simple que es puedes hacer lo mismo insertando un control tRichEdit con
una barra de botones, incluso puede leer y grabar los mismos documentos
que Wordpad y el control siempre es tuyo.
Salu2.
El 03/08/2010 10:06, "Joaquí­n Martí­nez." escribió:
> Gracias Bingen,
>
> Pero has probado tu ejemplo con una pantalla como la de mi imágen y el
> Wordpad ??
>
> Es decir, Creas un form con 3 Tedits por ejemplo, a continuación un
> TBevel e incrustas con tu clase en el TBevel el wordpad.
>
> Hasta ahí­ me funciona, luego, estando en el TEdit nº 1, vas avanzando
> con Tabular por los controles, cuando llegues al TEdit nº 3 y le des a
> tabular, a mí­ me da un GPF si es el WordPad, no si es el notepad o la
> calculadora.
>
> ¿Podrí­as comprobarlo?
>
> Un Saludo,
> Joaquí­n
>
>
> El 02/08/10 13:28, Bingen Ugaldebere escribió:
>> /*
>> * Proyecto: CapturarExes
>> * Fichero: Form1.prg
>> * Descripción:
>> * Autor:
>> * Fecha: 02/08/2010
>> */
>>
>> #include "Xailer.ch"
>>
>> CLASS TForm1 FROM TForm
>>
>> COMPONENT oScrollBox1
>> COMPONENT oScrollBox2
>>
>> METHOD CreateForm()
>> METHOD FormShow( oSender )
>>
>> ENDCLASS
>>
>> #include "Form1.xfm"
>>
>> //---------------------------------------------------------- --------------------
>>
>>
>> METHOD FormShow( oSender ) CLASS TForm1
>> Local nHandle,nHandle2
>>
>> Execute("Calc.exe")
>>
>> Sleep(1000)
>>
>> nHandle := GETWNDHND("Calculadora")
>> if nHandle != 0
>> Setpar(nHandle,::oScrollBox1:Handle)
>>
>> MoveWindow(nHandle,0,0,::oScrollBox1:nWidth,::oScrollBox1:nH eight,.t.)
>> else
>> MsgAlert("Imposible instanciar Calculadora")
>> endif
>>
>>
>>
>> nHandle2 := GETWNDHND("Xailer - CapturarExes")
>> if nHandle2 !=0
>> Setpar(nHandle2,::oScrollBox2:Handle)
>>
>> MoveWindow(nHandle2,0,0,::oScrollBox2:nWidth,::oScrollBox2:n Height,.t.)
>> else
>> MsgAlert("Imposible instanciar Xailer")
>> endif
>>
>>
>> RETURN Nil
>>
>> //---------------------------------------------------------- --------------------
>>
>> #pragma BEGINDUMP
>> #include "windows.h"
>> #include "xailer.h"
>>
>>
>> HB_FUNC( SETPAR )
>> {
>> HWND hWnd;
>> hWnd = SetParent( LongToHandle(hb_parnl( 1 )), LongToHandle(hb_parnl(
>> 2 )));
>> hb_retnl ( (long) hWnd );
>> }
>>
>> HB_FUNC( GETWNDHND )
>> {
>> HWND hWnd;
>> hWnd = FindWindow(NULL, hb_parc( 1 ));
>> hb_retnl ((long) hWnd );
>> }
>>
>> HB_FUNC( MOVEWNDHND )
>> {
>> MoveWindow(LongToHandle(hb_parnl( 1 )),hb_parnl( 2 ),hb_parnl( 3
>> ),hb_parnl( 4 ),hb_parnl( 5 ),hb_parl( 6 ));
>> }
>>
>> #pragma ENDDUMP
>>
>>
>>
>> //---------------------------------------------------------- -------------------
>>
>

Incrustar notepad en un control

Publicado: Vie Ago 13, 2010 1:31 pm
por buzonjmartial
Hola Bingen,
No es que quiera incrustar el wordpad, era una manera simple de explicar
el error, con el notepad NO, con el wordpad SI da un GPF.
Lo he puesto porque todo el mundo tiene esos 2 programas para probar.
La cuestión era ser capaz de incrustar cualquier ejecutable de otro
fabricante y saber por qué con Xailer algunos exe´s dan GPF y otros no.
He descubierto que es el GoNextControl(), pero tendrí­a que ver como
modificarlo para que no dé el GPF.
Un Saludo,
Joaquí­n
El 12/08/10 8:43, Bingen Ugaldebere escribió:
> Pues definitivamente ha de ser un error del WordPad, yo lo tengo
> comprobado con Word 2003 y funciona.
>
> De todas maneras no se por que quieres meter el wordpad, pero con lo
> simple que es puedes hacer lo mismo insertando un control tRichEdit con
> una barra de botones, incluso puede leer y grabar los mismos documentos
> que Wordpad y el control siempre es tuyo.
>
> Salu2.
>
>
> El 03/08/2010 10:06, "Joaquí­n Martí­nez." escribió:
>> Gracias Bingen,
>>
>> Pero has probado tu ejemplo con una pantalla como la de mi imágen y el
>> Wordpad ??
>>
>> Es decir, Creas un form con 3 Tedits por ejemplo, a continuación un
>> TBevel e incrustas con tu clase en el TBevel el wordpad.
>>
>> Hasta ahí­ me funciona, luego, estando en el TEdit nº 1, vas avanzando
>> con Tabular por los controles, cuando llegues al TEdit nº 3 y le des a
>> tabular, a mí­ me da un GPF si es el WordPad, no si es el notepad o la
>> calculadora.
>>
>> ¿Podrí­as comprobarlo?
>>
>> Un Saludo,
>> Joaquí­n
>>
>>
>> El 02/08/10 13:28, Bingen Ugaldebere escribió:
>>> /*
>>> * Proyecto: CapturarExes
>>> * Fichero: Form1.prg
>>> * Descripción:
>>> * Autor:
>>> * Fecha: 02/08/2010
>>> */
>>>
>>> #include "Xailer.ch"
>>>
>>> CLASS TForm1 FROM TForm
>>>
>>> COMPONENT oScrollBox1
>>> COMPONENT oScrollBox2
>>>
>>> METHOD CreateForm()
>>> METHOD FormShow( oSender )
>>>
>>> ENDCLASS
>>>
>>> #include "Form1.xfm"
>>>
>>> //---------------------------------------------------------- --------------------
>>>
>>>
>>>
>>> METHOD FormShow( oSender ) CLASS TForm1
>>> Local nHandle,nHandle2
>>>
>>> Execute("Calc.exe")
>>>
>>> Sleep(1000)
>>>
>>> nHandle := GETWNDHND("Calculadora")
>>> if nHandle != 0
>>> Setpar(nHandle,::oScrollBox1:Handle)
>>>
>>> MoveWindow(nHandle,0,0,::oScrollBox1:nWidth,::oScrollBox1:nH eight,.t.)
>>> else
>>> MsgAlert("Imposible instanciar Calculadora")
>>> endif
>>>
>>>
>>>
>>> nHandle2 := GETWNDHND("Xailer - CapturarExes")
>>> if nHandle2 !=0
>>> Setpar(nHandle2,::oScrollBox2:Handle)
>>>
>>> MoveWindow(nHandle2,0,0,::oScrollBox2:nWidth,::oScrollBox2:n Height,.t.)
>>> else
>>> MsgAlert("Imposible instanciar Xailer")
>>> endif
>>>
>>>
>>> RETURN Nil
>>>
>>> //---------------------------------------------------------- --------------------
>>>
>>>
>>> #pragma BEGINDUMP
>>> #include "windows.h"
>>> #include "xailer.h"
>>>
>>>
>>> HB_FUNC( SETPAR )
>>> {
>>> HWND hWnd;
>>> hWnd = SetParent( LongToHandle(hb_parnl( 1 )),
>>> LongToHandle(hb_parnl(
>>> 2 )));
>>> hb_retnl ( (long) hWnd );
>>> }
>>>
>>> HB_FUNC( GETWNDHND )
>>> {
>>> HWND hWnd;
>>> hWnd = FindWindow(NULL, hb_parc( 1 ));
>>> hb_retnl ((long) hWnd );
>>> }
>>>
>>> HB_FUNC( MOVEWNDHND )
>>> {
>>> MoveWindow(LongToHandle(hb_parnl( 1 )),hb_parnl( 2 ),hb_parnl( 3
>>> ),hb_parnl( 4 ),hb_parnl( 5 ),hb_parl( 6 ));
>>> }
>>>
>>> #pragma ENDDUMP
>>>
>>>
>>>
>>> //---------------------------------------------------------- -------------------
>>>
>>>
>>