Aplicacion externa llamada desde mi Aplicacion dentro de MDI

Aplicacion externa llamada desde mi Aplicacion dentro de MDI

Postby jnavas » Tue Mar 10, 2020 2:11 pm

Saludos a Todos

Necesito llamar aplicacion externa y esta deberá mostrarse dentro de mi aplicacion, si el usuario maxima la aplicacion externa debera hacerlo dentro de la ventana MDI de mi.
aplicacion

Agradecido por su valioso aporte.
User avatar
jnavas
 
Posts: 479
Joined: Wed Nov 16, 2005 12:03 pm
Location: Caracas - Venezuela

Re: Aplicacion externa llamada desde mi Aplicacion dentro de MDI

Postby karinha » Tue Mar 10, 2020 2:29 pm

Intentas:

Code: Select all  Expand view  RUN

   LOCAL cComando

   cComando := "h:\Desarrollo\Externo\NewProgram.exe"

   WinExec( cComando )

   ó

   WaitRun( cComando )
 


Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7831
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Aplicacion externa llamada desde mi Aplicacion dentro de MDI

Postby zlrm2808 » Tue Mar 10, 2020 6:09 pm

karinha wrote:Intentas:

Code: Select all  Expand view  RUN

   LOCAL cComando

   cComando := "h:\Desarrollo\Externo\NewProgram.exe"

   WinExec( cComando )

   ó

   WaitRun( cComando )
 


Saludos.


Hola Karinha, yo me imagino que el Sr lo que quiere es que cuando el llame una aplicación por ejemplo word.exe, la misma quede del tamaño del control MDI que tiene dentro del formulario principal, ya que con el script que acabas de enviar solo llama a la aplicación externa, pero cuando maximizo me cubre toda la pantalla sobreponiendose a la aplicación; de hecho yo también tengo el mismo inconveniente y me gustaría algún tipo de ayuda, ya que en mi ventana principal o formulario principal tengo varios botones y comandos que necesito que estén visibles todo el tiempo, necesito llamar una aplicación que cuando este maximizada se acople al control MDI que es donde muestro todas mis otras pantallas que son directamente de mi sistema y si se acoplan a la perfección a este.

muchas gracias de antemano.
zlrm2808
 
Posts: 4
Joined: Tue Mar 10, 2020 5:59 pm

Re: Aplicacion externa llamada desde mi Aplicacion dentro de MDI

Postby karinha » Tue Mar 10, 2020 6:40 pm

y con ShellExecute?

Code: Select all  Expand view  RUN

#include "fivewin.ch"

#define SW_HIDE             0
#define SW_SHOWNORMAL       1
#define SW_SHOWMINIMIZED    2
#define SW_MAXIMIZE         3
#define SW_SHOWMAXIMIZED    3
#define SW_SHOWNOACTIVATE   4
#define SW_SHOW             5
#define SW_MINIMIZE         6
#define SW_SHOWMINNOACTIVE  7
#define SW_SHOWNA           8
#define SW_RESTORE          9
#define SW_SHOWDEFAULT     10

//------------------------------------//

   ShellExecute( oDlg:hWnd, "open", cExe,,, SW_SHOWNORMAL )
 


Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7831
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Aplicacion externa llamada desde mi Aplicacion dentro de MDI

Postby zlrm2808 » Tue Mar 10, 2020 7:28 pm

karinha wrote:y con ShellExecute?

Code: Select all  Expand view  RUN

#include "fivewin.ch"

#define SW_HIDE             0
#define SW_SHOWNORMAL       1
#define SW_SHOWMINIMIZED    2
#define SW_MAXIMIZE         3
#define SW_SHOWMAXIMIZED    3
#define SW_SHOWNOACTIVATE   4
#define SW_SHOW             5
#define SW_MINIMIZE         6
#define SW_SHOWMINNOACTIVE  7
#define SW_SHOWNA           8
#define SW_RESTORE          9
#define SW_SHOWDEFAULT     10

//------------------------------------//

   ShellExecute( oDlg:hWnd, "open", cExe,,, SW_SHOWNORMAL )
 


Saludos.


gracias de nuevo por tu respuesta, pero sigue igual o sea puedo llamar a un programa externo, lo puedo maximizar, minimizar, ocultar, etc etc etc... pero al maximizarlo se superpone a mi ventana principal y lo que necesito es que quede insertado dentro de mi control MDI que tengo en ella
zlrm2808
 
Posts: 4
Joined: Tue Mar 10, 2020 5:59 pm

Re: Aplicacion externa llamada desde mi Aplicacion dentro de MDI

Postby nageswaragunupudi » Tue Mar 10, 2020 7:59 pm

It is not possible to show every external application inside our program window. It is possible with OCX (Activex) applications only.

However, if your requirement is MS Word, Excel or PowerPoint, it is possible.
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10646
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: Aplicacion externa llamada desde mi Aplicacion dentro de MDI

Postby cnavarro » Tue Mar 10, 2020 11:39 pm

Juan, te refieres a llamar a otra aplicación ( como por ejemplo Notepad.exe ) ? e incrustarla dentro de la mdichild?
Esto?

Image
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6549
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Aplicacion externa llamada desde mi Aplicacion dentro de MDI

Postby zlrm2808 » Tue Mar 10, 2020 11:42 pm

cnavarro wrote:Juan, te refieres a llamar a otra aplicación ( como por ejemplo Notepad.exe ) ? e incrustarla dentro de la mdichild?
Esto?

Image



Exactamente esto mismo.... podría ayudarme con esto?
muchas gracias de antemano
zlrm2808
 
Posts: 4
Joined: Tue Mar 10, 2020 5:59 pm

Re: Aplicacion externa llamada desde mi Aplicacion dentro de MDI

Postby cnavarro » Tue Mar 10, 2020 11:44 pm

Qué versión utilizas?
Como te llamas?
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6549
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Aplicacion externa llamada desde mi Aplicacion dentro de MDI

Postby nageswaragunupudi » Wed Mar 11, 2020 12:58 am

Mr. Cristobal

This is wonderful.
Can you please provide the code?
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10646
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: Aplicacion externa llamada desde mi Aplicacion dentro de MDI

Postby zlrm2808 » Wed Mar 11, 2020 1:08 pm

cnavarro wrote:Qué versión utilizas?
Como te llamas?



Mi Nombre es Zeus Rodriguez, estoy comenzando a formar parte del equipo de desarrolladores de AdaptaPro con el Sr Juan Navas, la verdad no se muy bien cual versión utilizo ya que el lenguaje en si, esta dentro del mismo AdaptaPro, lo único que se es que es FiveWin para Harbour
zlrm2808
 
Posts: 4
Joined: Tue Mar 10, 2020 5:59 pm

Re: Aplicacion externa llamada desde mi Aplicacion dentro de MDI

Postby cnavarro » Wed Mar 11, 2020 2:26 pm

Hola Zeus, bienvenido, mi nombre es Cristobal
Aqui tienes el código para que lo vayas trasteando según tus necesidades
Ya me contarás como te ha ido
Code: Select all  Expand view  RUN

#include "FiveWin.ch"

Static oWnd
Static oWndChild
Static nRow        := 0
Static nCol        := 0
Static nHChild     := 650
Static nWChild     := 1000
Static hWin

function Main()

   DEFINE WINDOW oWnd MDI FROM 0, 0 TO 750, 1300 PIXEL ;
      TITLE "A sample of a MDI environment" MENU MyMenu()

   ACTIVATE WINDOW oWnd

return nil

//----------------------------------------------------------------------------//

Function MyMenu()

   local oMnu
   MENU oMnu
      MENUITEM "Create_Child" ACTION ( CreaChild() )
      MENUITEM "Exit"   ACTION oWnd:End()
   ENDMENU

Return oMnu

//----------------------------------------------------------------------------//

Function CreaChild()

   DEFINE WINDOW oWndChild MDICHILD OF oWnd ;
      FROM nRow + 1 , nCol TO nHChild, nWChild PIXEL ;
      COLOR CLR_WHITE, METRO_OLIVE

   ACTIVATE WINDOW oWndChild ;
      ON PAINT ( Externo() )

return oWndChild

//----------------------------------------------------------------------------//

#define GW_HWNDNEXT                       2
#define GW_CHILD                          5
#define GWL_STYLE                       -16
#define GWL_EXSTYLE                     -20

#define SWP_NOZORDER                 0x0004
#define SWP_NOREDRAW                 0x0008
#define SWP_FRAMECHANGED             0x0020
#define SWP_NOOWNERZORDER            0x0200
#define SWP_ASYNCWINDOWPOS           0x4000

#define HWND_TOP                          0
#define HWND_BOTTOM                       1

//----------------------------------------------------------------------------//

STATIC FUNCTION Externo()
   local nStyle
   local lIni    := .T.
   if Empty( hWin )
      WinExec( "Notepad" )
      hWin := FindWnd( "Bloc" )
   else
      lIni  := .F.
   endif
   if !Empty( hWin )
      if lIni
         nStyle          := GetWindowLong( hWin, GWL_STYLE )
         nStyle          -= WS_CAPTION
         nStyle          -= WS_SYSMENU
         nStyle          += WS_THICKFRAME
         SetParent( hWin, oWndChild:hWnd )
         SetWindowLong( hWin, GWL_STYLE, nStyle )
      endif
      SetPosExt( hWin )
      SetFocus( hWin )
   endif
RETURN NIL

//----------------------------------------------------------------------------//

Function FindWnd( cTitle )
   local hWnd1 := GetWindow( GetDesktopWindow(), GW_CHILD )
   local lSw   := .F.

   while hWnd1 != 0
      if Upper( cTitle ) $ Upper( GetWindowText( hWnd1 ) )
         lSw  := .T.
         Exit
      endif
      hWnd1 = GetWindow( hWnd1, GW_HWNDNEXT )
   end
return if( lSw, hWnd1, nil )

//----------------------------------------------------------------------------//

Function SetPosExt( hWnd )

     local aRect        := GetClientRect( hWnd )
     local nAncho       := oWndChild:nWidth - 10
     local nInc         := 1
     local nInc1        := 0
     local aPos         := Array( 4 )
     DEFAULT aPos[ 1 ]  := 2
     DEFAULT aPos[ 2 ]  := 2
     DEFAULT aPos[ 3 ]  := nAncho - 12
     DEFAULT aPos[ 4 ]  := oWndChild:nHeight - nInc - nInc1 - aPos[ 1 ]
     SetWindowPos( hWnd, HWND_TOP, ; //BOTTOM, ;
                   aPos[ 1 ] + nInc, aPos[ 2 ] + 1, aPos[ 3 ], aPos[ 4 ], ;
                   nOr( SWP_ASYNCWINDOWPOS, SWP_FRAMECHANGED, SWP_NOOWNERZORDER, SWP_NOZORDER, SWP_NOREDRAW ) ) //, SWP_NOZORDER ) )

Return nil

//----------------------------------------------------------------------------//

 
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6549
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Aplicacion externa llamada desde mi Aplicacion dentro de MDI

Postby jnavas » Thu Mar 12, 2020 3:43 am

Navarro
Muy agradecido por los buenos oficios,
Afirmativo es lo que necesito para que un de mis clientes cree aplicaciones en otro lenguaje y los ejecuta esde mi aplicacion y el usuario lo asuma como una funcionalidad mas de mi sistema.
Tambien me interesa saber como o con que haces el video muy ilustrativo para la explicación.
User avatar
jnavas
 
Posts: 479
Joined: Wed Nov 16, 2005 12:03 pm
Location: Caracas - Venezuela

Re: Aplicacion externa llamada desde mi Aplicacion dentro de MDI

Postby cnavarro » Thu Mar 12, 2020 8:05 am

Juan, utilizo una aplicacion gratuita LICECAP, para crear GIFs porque es muy fácil de utilizar y sin instalación
También es muy buena otra aplicación: SCREENTOGIF, que te permite editar el GIF generado después de grabarlo
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6549
Joined: Wed Feb 15, 2012 8:25 pm
Location: España


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 36 guests