La API (Application Programming Interface) es un conjunto de funciones para interactuar con Windows. Permite a los programadores de Visual Basic, Delphi, Java, etc usar funciones que ya vienen incorporadas internamente con el propio Windows.
Las funciones principales de la API se encuentran en unas librerias .DLL que se alojan en el directorio System32 de Windows y con ellas se pueden realizar casi todas las tareas del windows, como por ejemplo cambiar la resolución de la pantalla, comprobar si existe un archivo, ejecutar programas, acceder al registro, etc, etc. Las DLLs principales son:
* user32.dll (Maneja la interfaz de usuario)
* kernel32.dll (Trabaja con los archivos y la memoria de la Computadora)
* gdi32.dll (Funciones gráficas)
* winmm.dll (Multimedia)
* shell32.dll (Ejecución de programas)
* advapi32.dll (Funciones avanzadas)
Existen más archivos .DLL con funciones propias, pero estas tres nombradas anteriormente son las principales.
Las ventajas de saber usar las funciones API son principalmente que pueden ser usadas por varios lenguajes de programación que trabajen bajo Windows.
Para ver una lista de las APIs de Windows se puede usar el API Text Viewer que viene con el visual Basic 6.0, que es un programita bastante fácil de usar, te muestra las funciones y su sintaxis. Pero para mi gusto el mejor es el API-Guide, que se puede bajar de:
http://www.allapi.net. La última versión es la 3.7. Las ventajas que tiene este programa con respecto al anterior son que además de mostrar la sintaxis de cada función, también muestra ejemplos de como usarlas, no sólo para Visual Basic 6.0 sino que, en algunos casos, también para .NET. Otra ventaja muy útil es que se pueden ver las funciones se agrupadas por categorías, por ejemplo si quiero saber el nombre del usuario que ejecuta mi programa y no me acuerdo el nombre de la función no es necesario que busque entre las miles de funciones que hay, sino que más fácil, tendría que ir al grupo "Windows Information" y buscarla ahí, que de seguro va a ser mucho más fácil.
Para llamar a una funcion API se usa la siguiente sintaxis:
Declare Function <NOMBRE_DE_LA_FUNCION> Lib "<LIBRERIA>" Alias <ALIAS> (PARAMETROS)
Siguiendo con el ejemplo anterior, para saber el nombre del usuario que ejecuta mi programa, después de haber buscado el
nombre de la función (que es GetUserName) vemos que la declaración es:
Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _
(ByVal lpBuffer As String, nSize As Long) As Long
Ahí vemos el nombre de la función (GetUserName) perteneciente a la libreria advapi32.dll, el alias GetUserNameA que es el nombre que lleva la función dentro de la DLL y por último los parametros, en este caso son dos:
* lpBuffer: El buffer en donde será guardado el nombre de usuario.
* nSize: Especifica el tamaño máximo del buffer (lpBuffer)
Sabiendo esto ya podemos hacer nuestro programa:
Private Sub Form_Load()
Dim Nombre As String
'Crea un buffer de 100 caracteres
Nombre = String(100, Chr$(255))
'Llama a la función, especificando el buffer de 100 caracteres
GetUserName Nombre, 100
'Borra los caracteres sobrantes dejando solo lo que nos interesa
Nombre = Left$(Nombre, InStr(Nombre, Chr$(255)) - 1)
'Muestra el nombre de usuario
MsgBox "Usuario: " + Nombre
End Sub
Otra cosa que vale aclarar es que si bien se puede declarar las funciones en el cuerpo del programa, lo ideal siempre es hacerlo en un módulo aparte.
Este fué el primer pantallazo sobre las APIs, bastante cortito y simple, proximamente voy a ver si puedo comentar funciones un poco mas interesantes, mas complejas y útiles como para incorporar a nuestros programas.
*-LaDRi-*