viernes, 7 de junio de 2019

ShellExecute desde Visual Foxpro

Ques es Shellexecute ?

La función ShellExecute() es realmente muy útil y por eso es muy importante que la conozcamos muy detalladamente para entender toda su funcionalida.

En primer lugar, debemos aclarar que no es una función propia de Visual FoxPro sino que es una función de la API del Windows. 

Con Shellexecute podemos llamar una infinidad de programas el cual realizan muchísimas tareas de utilidad para los programadores y obtienen buenos resultados.

¿Qué es la API del Windows? 

Las siglas API son las iniciales de Application Programming Interface o sea la Interfaz para la Programación de Aplicaciones en el sistema operativo Windows. 

¿Para qué sirve ShellExecute()?

Puede ejecutar cualquier programa que se encuentre en la computadora del usuario.

Descripción de cada una de sus variables.

hWnd: Un manipulador a la ventana padre usada para mostrar un interfaz de usuario o mensajes de error. Este valor puede serNULL si la operación no está asociada con una ventana.

lpOperation: Un puntero a una cadena terminada en cero, usada en este caso como un verbo, que especifica la acción a realizar. El conjunto de verbos disponibles depende del fichero o carpeta en particular. Generalmente, las acciones disponibles desde el atajo de menú del objeto están disponibles como verbos. Los siguientes verbos son de uso general:

edit :Lanza un editor y abre el documento para edición. Si lpFile no es un fichero de documento, la función fallará.

explore :Explora una carpeta especificada por lpFile.

find :Inicia una búsqueda en el directorio especifiado por lpDirectory.

open :Abre el ítem especificado por el parámetro lpFile. El ítem puede ser un fichero o una carpeta.

print :Imprime el fichero especificado por lpFile. Si lpFile no es un fichero de documento, la función fallará.

NULL :Se usa el verbo por defecto, si está disponible. Si no, se usará el verbo "open". Si ningún verbo está disponible, el sistema usa el primer verbo listado en el registro.

lpFile : Un puntero a una cadena terminada en cero que especifica el fichero u objeto en el que se ejecutará el verbo especifiado. Para especificar un objeto del espacio de nombres del Shell, hay que pasar el nombre completo de análisis. Hay que tener en cuenta que no todos los verbos están soportados para todos los objetos. Por ejemplo, no todos los tipos de documentos soportan el verbo "print". Si se usa un camino relativo para el parámetro lpDirectory no se debe usar uno para lpFile.

lpParameters : Si lpFile especifica un fichero ejecutable, este parámetro es un puntero a una cadena terminada en cero que especifica los parámetros a pasar a la aplicación. El formato de esta cadena se determina por el verbo que se va a invocar. Si lpFile especifica un fichero de documento, lpParametersdebe ser NULL.

lpDirectory : Un puntero a una cadena terminada con cero que especifica el directorio de trabajo por defecto para la acción. Si este valor es NULL, se usará el directorio de trabajo actual. Si se proporciona un camino relativo para lpFile, no se debe usar para lpDirectory.

nShowCmd : Las banderas que especifican como se mostrará la aplicación cuando se abra. Si lpFileespecifica un fichero de documento, la bandera sencillamente es pasada a la aplicación asociada. Se deja a la aplicación la decisión de como manejarla. Estos valores se definen en Winuser.h.

SW_HIDE (0) : Oculta la ventana y activa otra.

SW_MAXIMIZE (3): Maximiza la ventana especificada.

SW_MINIMIZE (6) :Minimiza la ventana especificada y activa la siguiente ventana top-level en el orden z.

SW_RESTORE (9) :Activa y muestra la ventana. Si la ventana está minimizada o maximizada, Windows restaura su tamaño y posición originales. Una aplicación debe especificar esta bandera cuando restaure una ventana minimizada.

SW_SHOW (5) :Activa la ventana y la muestra en su tamaño y posición actuales.

SW_SHOWDEFAULT (10) :Asigna el estado de muestra basándose en la bandera SW_ especificada en la estructura STARTUPINFO pasada a la función CreateProcess por el programa que ha lanzado la aplicación. La aplicación debe invocar ShowWindow con esta bandera para asignar el estado de muestra inicial de su ventana principal.

SW_SHOWMAXIMIZED (3)  : Activa la ventana y la muestra como una ventana maximizada.

SW_SHOWMINIMIZED (2) : Activa la ventana y la muestra como una ventana minimizada.

SW_SHOWMINNOACTIVE (7): Muestra la ventana como una ventana minimizada. La ventana activa permanece activa.

SW_SHOWNA (8) : Muestra la ventana en su estado actual. la ventana activa permanece activa.

SW_SHOWNOACTIVATE (4) : Muestra la ventana en su tamaño y posición más reciente. La ventana activa permance activa.

SW_SHOWNORMAL (1) : Activa y muestra la ventana. Si la ventana está minimizada o maximizada, Windows la restaura a su tamaño y posición originales. Una aplicación debe especificar esta bandera cuando muestra la ventana por primera vez.

Sintaxis de Shellexecute:

DECLARE INTEGER ShellExecute IN shell32.dll INTEGER hndWin, STRING cAction,STRING cFileName,STRING cParams,STRING cDir,INTEGER nShowWin

Ejemplo :

DECLARE INTEGER ShellExecute IN shell32.dll ;
  INTEGER hndWin, STRING cAction, STRING cFileName, ;
  STRING cParams, STRING cDir, INTEGER nShowWin
lcAction   = "open"
lcFileName = "https://visualfoxprogram.blogspot.com/"
=ShellExecute(0, lcAction, lcFileName, "", "", 1)

0 comentarios:

Publicar un comentario