Embeber programas de terceros en un formulario -VFP

170 views
Skip to first unread message

adem adem

unread,
Nov 1, 2023, 2:27:57 PM11/1/23
to publice...@googlegroups.com
Tengo un formulario en Visual FoxPro desde el cual intentó embeber un programa de terceros. Usando el siguiente código proporcionado en la página:

Después de crear el form y añadirle un shape con la propiedad visible = .F., y desde el evento init del form o desde un botón:

LOCAL lnResultado, lnHwnd1, lnHwnd2, lnHeight, lnLeft, lnTop, lnWidth
  #DEFINE MSG_BOTON_OK 0
  #DEFINE MSG_ICONO_ERROR 16
  DECLARE INTEGER SetParent IN USER32 ;
    INTEGER, ;
    INTEGER
  DECLARE INTEGER WinExec IN KERNEL32 ;
    STRING , ;
    INTEGER
  DECLARE INTEGER FindWindow IN USER32 ;
    STRING, ;
    STRING
  DECLARE INTEGER SetWindowPos IN user32;
    INTEGER, ;
    INTEGER, ;
    INTEGER, ;
    INTEGER, ;
    INTEGER, ;
    INTEGER, ;
    INTEGER
  *--- Bloc de Notas. La aplicación que queremos insertar en nuestro formulario
  lnResultado = WinExec("NOTEPAD.EXE", 1)
  IF lnResultado < 32
    =MessageBox("Verifica que el Bloc de Notas esté instalado", MSG_ICONO_ERROR + MSG_BOTON_OK, "ERROR...")
    RETURN
  ENDIF
  *--- Hallamos el "handle" del Bloc de Notas. El Windows busca el Caption de esa aplicación,
  *--- así que debemos escribirla exactamente igual
  lnHwnd1 = FindWindow(.NULL., "Sin título: Bloc de notas")
  *--- Colocamos al Bloc de Notas dentro de nuestro formulario
  =SetParent(lnHwnd1, ThisForm.HWnd)
  *--- Dimensionamos al Bloc de Notas para que sea igual a nuestro control SHAPE
  WITH ThisForm.Shape1
    lnHeight = .Height
    lnLeft   = .Left
    lnTop    = .Top
    lnWidth  = .Width
  ENDWITH
  *--- Hacemos que el Bloc de Notas tenga las mismas dimensiones que nuestro control SHAPE
  =SetWindowPos(lnHwnd1, 1, lnLeft, lnTop, lnWidth, lnHeight, 64)
( En este ejemplo el autor llama el programa bloc de notas)

Estoy teniendo dificultades para embeber el programa 'zbarcam.exe' de ZBar. Este programa se ejecuta a través de un archivo .bat incluido ('zbarcam.bat') ubicado en en la carpeta donde está instalado Zbar. ¿Cómo puedo modificar mi código actual en VFP para abrir y embeber correctamente 'zbarcam.exe' a través de este archivo .bat? Agradezco cualquier orientación al respecto.

Enlace para descargar Zbar:

Un saludo.

Zarlu

unread,
Nov 3, 2023, 10:18:54 AM11/3/23
to Comunidad de Visual Foxpro en Español
Buenos días 76xademx76 !

El código que muestras funciona básicamente con el caption de la ventana de la aplicación a acoplar.

Primero se lanza la aplicación entonces busca su captión y la acopla al formulario.
Esto es lo que debes de cambiar por el caption de tu aplicación:
lnHwnd1 = FindWindow(.NULL., "Sin título: Bloc de notas")

Suerte
zarlu
Chetumal, Quintana Roo, México

adem adem

unread,
Nov 4, 2023, 8:37:34 PM11/4/23
to publice...@googlegroups.com
Hola, Zarlu,
Gracias por responder, estoy de viaje y no tengo el pc a mano, lo probaré nada más regreso. 
Un Saludo 🙏

--
Blog de la Comunidad Visual FoxPro en Español http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/bd28c039-8092-4b28-88fb-2fe8b5e731abn%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages