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

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.

136566
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
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 WIN32APImynull = .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"   ENDIFELSE   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".
VFoxWin

Advertencia: este artículo se ha traducido automáticamente

Propiedades

Id. de artículo: 136566 - Última revisión: 02/22/2014 04:22:49 - Revisión: 1.1

  • Microsoft Visual FoxPro 3.0 Standard Edition
  • kbnosurvey kbarchive kbmt KB136566 KbMtes
Comentarios