Cómo utilizar el comando DECLARE DLL para llamar a funciones SDK de Win32

Seleccione idioma Seleccione idioma
Id. de artículo: 136566 - Ver los productos a los que se aplica este artículo
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Expandir todo | Contraer todo

En esta página

Resumen

En este artículo se muestra por ejemplo de cómo utilizar el comando DECLARE DLL en Visual FoxPro para llamar a funciones que forman parte del Kit de desarrollo de software (SDK) de Win32. El ejemplo de código muestra cómo utilizar DECLARE DLL para configurar funciones que pueden utilizar para intercambiar la ventana de primer plano a otra aplicación.

Más información

Código de ejemplo

* DECLARE is used to make connections to two SDK functions. It
* uses the keyword WIN32API for the LibraryName to tell Visual FoxPro
* to search for the 32-bit Windows .dll function in Kernel32.dll,
* Gdi32.dll, User32.dll, Mpr.dll, and Advapi32.dll.
*
* FindWindow takes two parameters and returns the HWND of the application
* window if found.

DECLARE INTEGER FindWindow IN WIN32API AS findw STRING,STRING

* SetForegroundWindow takes one parameter and returns true(1) or false(0)
* depending upon its ability to switch to the other window.

DECLARE INTEGER SetForegroundWindow IN WIN32API INTEGER

* GetFocus takes no parameters and returns the HWND
* of the window that currently has the focus.

DECLARE INTEGER GetFocus IN WIN32API

mynull = .NULL.       && You need a NULL when you do not know the
                      && the class name of the window.

winname = "File Manager"  && This should be the name of another window that
                          && is open on the Windows desktop.

* First call FindWindow to get the HWNDs for the application you want
* to switch to. It is important that Visual FoxPro has the focus when this
* is run and that you know the exact name of the window that you want to
* switch to. For more info Please see the Note later in this code.

foxhand= getfocus()
pmhand = findw(mynull,winname)

IF pmhand<>0   && If you have an HWND, switch
   WAIT WINDOW "Press Any Key to Switch to another window and then back;
                after a short interval."
   switched = setforegroundwindow(pmhand)
   IF switched = 1  && If switched, count for a while and switch back
      ii=1
      DO WHILE ii<50000
         ii=ii+1
      ENDDO
      switched = setforegroundwindow(foxhand)
      WAIT WINDOW "I'm back now"
   ELSE
      WAIT WINDOW  "Switch failed"
   ENDIF
ELSE
   WAIT WINDOW "Cannot find that window"
ENDIF
				
Nota: En Windows NT y Windows 95, si está maximizada una ventana secundaria, su nombre se agregará al nombre de la ventana principal de la barra de título de la ventana principal. Por ejemplo, al ejecutar Microsoft Word se abre automáticamente un documento vacío. Si este documento (llamarlo Documento1), no es está maximizada, el título de la ventana principal de Microsoft Word es "Microsoft Word". Si está maximizada Documento1, el título es "Microsoft Word - Documento1". En el código de ejemplo, si desea cambiar a la sesión de Microsoft Word, establezca la variable winname "Microsoft Word - Documento1".

Propiedades

Id. de artículo: 136566 - Última revisión: sábado, 22 de febrero de 2014 - Versión: 1.1
La información de este artículo se refiere a:
  • Microsoft Visual FoxPro 3.0 Standard Edition
Palabras clave: 
kbnosurvey kbarchive kbmt KB136566 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 136566

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com