Anda di halaman 1dari 38

Recursos Visual Basic - Tutorial Api parte 1

Inicio Ejemplos vb Ocx - Activex

Api vb

Tutoriales - Manuales

Cdigo fuente

Ejemplos vb.net

Buscar

Seccin de manuales vb

tutoriales

Tutorial Api de windows parte 1


http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]

Recursos Visual Basic - Tutorial Api parte 1 Parte 1 - Parte 2 - Parte 3

http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]

Recursos Visual Basic - Tutorial Api parte 1

Introduccin:

El trmino Api significa "Plataforma de interface para el desarrollo de aplicaciones". Las Api son funciones que se encuentran compiladas y almacenadas en archivos con extencin dll o exe , bajo el
http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]

Recursos Visual Basic - Tutorial Api parte 1

directorio de sistema de windows. Estas funciones son utilizadas por los programadores para desarrollar aplicaciones y realizar acciones sobre el sistema operativo y nuestros programas que de otra manera no se podran lograr. Por ejemplo imagin que tens que desarrollar una aplicacin y que la misma tenga una opcin para cerrar o apagar el sistema. Visual basic u otros lenguajes no incorporan ninguna funcin para dicha tarea. Windows nos brinda una funcin Api llamada ExitWindowEx para realizar este procedimiento y muchas otras tareas, que desde visual basic solamente, jams podramos realizar. En definitiva las
http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]

Recursos Visual Basic - Tutorial Api parte 1

funciones Api son funciones externas a un lenguaje de programacin. Tambin podemos agregar que teniendo suficientes conocimientos de programacin, y con un lenguaje apropiado como c++, podemos crear dichas funciones. Estas funciones Api se encuentran almacenadas dentro de archivos con extencin dll o archivos ejecutables exe en el directorio de sistema de windows, puede ser system, system32 etc.. dependiendo de la versin de la plataforma A continuacin los 5 archivos que contienen las principales funciones api:

http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]

Recursos Visual Basic - Tutorial Api parte 1

kernel32.exe: Este este archivo, que es el ncleo del sistema operativo , reciden funciones para obtener o

ejecutar funciones diversas. user32.exe: Este archivo contiene

funciones de uso general. gdi32.exe: en este archivo

encontramos funciones para el manejo de grficos y todo lo relacionado con la pantalla. winmm.dll: Este archivo,que es una
http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]

Recursos Visual Basic - Tutorial Api parte 1

abreviacin de windows multimedia, encontramos funciones para el uso de todo lo relacionado con la multimedia, por ejemplo si queremos hacer sonar un mp3, sin utilizar un control de visual basic, podemos utilizar varias funciones incorporadas en este archivo advapi32.dll: Este archivo contiene funciones avanzadas.

http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]

Recursos Visual Basic - Tutorial Api parte 1

Cmo se utilizan las funciones Api ?


Para acceder una funcin Api desde visual basic debemos declararla en el cdigo, esto quiere decir que le tenemos que avisar que vamos a utilizar una funcin que es externa. para ello se utiliza la palabra reservada: Declare function. Veamos la sintaxis de una funcin api de ejemplo para analizarla:

Private

Declare

Function

http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]

Recursos Visual Basic - Tutorial Api parte 1

ExitWindowsEx Lib "User32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long

Esta funcin Api llamada ExitWindowsEx se utiliza para cerrar windows, reiniciar el sistema, cambiar de sesin etc... La palabra Private indica que la funcin Api es de tipo Privada, o sea que solo se podr acceder desde el formulario o mdulo de cdigo donde est declarada. Si quisiramos acceder a una Api desde cualquier parte de un proyecto, lo haramos declarando la funcin en un mdulo de
http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]

Recursos Visual Basic - Tutorial Api parte 1

cdigo con la palabra Public. Como cualquier funcin que queremos que est visible a nivel global, o simplemente poniendo Declare Function Despus de esto le sigue el nombre de la funcin que vamos a utilizar, en este caso "ExitWindowsEx", seguido de la palabra reservada lib donde indicamos el archivo que contiene la funcin, es decir el archivo fsico en el disco, en este caso es el archivo user32.dll. Por ltimo la funcin lleva 2 parmetros de tipo Long, que le debemos pasar a la misma, seguido del tipo de dato que devolver o retornar la funcin Api, en este
http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]

Recursos Visual Basic - Tutorial Api parte 1

caso de tipo long. Esta funcin es muy simple de usar y en el captulo siguiente hay un ejemplo de como usarla para cerrar windows. Para terminar con esta introduccin, aclaremos algunas de las ventajas que tenemos y alguna otra sugerencia al usar estas funciones: 1 La ventaja principal es que

podemos realizar tareas que de otro modo no se podran lograr, sin utilizar controles Activex externos.
http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]

Recursos Visual Basic - Tutorial Api parte 1

Si

bien

es

mas complicado

programar utilizando estas funciones, otra ventaja es que a medida que las utilizamos, cada vez comprendemos mejor el funcionamiento interno de windows, ya que estamos llamando a funciones operativo tareas. 3 Otra ventaja un es que cuando no que utiliza el mismo sistema sus

para

realizar

compilamos

ejecutable,

http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]

Recursos Visual Basic - Tutorial Api parte 1

tenemos que incorporar en el paquete de instalacin, las libreras y archivos externos, ya que el programa cuando se ejecute, llamar a las funciones que se encuentran en los archivos del sistema de windows. 4 - El tema de la sintaxis en las api es fundamental, ya que cualquier funcin mal escrita, o un uso mal de la

funcin, har que no se ejecute lo que nosotros realmente esperamos.


http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]

Recursos Visual Basic - Tutorial Api parte 1

5 - Por ltimo cabe aclarar que en este resumido tutorial y en cualquier otro tutorial que encuentres, jams podrs ver por completo todo esto relacionado a las funciones Api, ya que son miles de funciones y no

alcanzaran ni 1000 manuales como para explicar todo. El sitio con mas informacin es sin duda la web de Microsoft, pero la mayora de los

ejemplos no estn en Visual Basic por


http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]

Recursos Visual Basic - Tutorial Api parte 1

lo tanto se complica un poco buscar informacin. Una aplicacin muy

conocida que tiene varios cientos de ejemplos con funciones Api de todo tipo para Visual basic se llama el Api
Guide y pods descargar esta exelente

base de datos de forma gratuita.

Primer ejemplo usando una funcin Api - Apagar


http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]

Recursos Visual Basic - Tutorial Api parte 1

y reiniciar Windows
Como mencionamos anteriormente, vamos a realizar un ejemplo para ir conociendo esto de las funciones Api. El programa que consistir en un formulario mediante el cual, por medio de un botn podremos reiniciar o cerrar windows y/o apagar la pc, utilizando para ello la funcin ExitWindowsEx, que se encuentra en el archivo user32.dll del directorio system de windows en win98 y system32 en win NT En el momento que escrib esto yo lo hice
http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]

Recursos Visual Basic - Tutorial Api parte 1

en Windows 98, en windows XP se han hecho un par de modificaciones en la funcin, por lo tanto no funciona correctamente, por lo menos yo no pude hacerlo. En la seccin Api hay un ejemplo para hacerlo en Xp y la direccin es esta:
Apagar, reiniciar y logout en Windows NT

http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]

Recursos Visual Basic - Tutorial Api parte 1

Pasos a seguir: 1 - Abr el visual e insert en el form principal 2 controles Optionbutton y un


http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]

Recursos Visual Basic - Tutorial Api parte 1

commandbutton. El option1, en la propiedad caption ingresa: reiniciar windows. En el option2: apagar windows. En el caption del command1 Aceptar. 2 - ahora en la seccin de declaraciones vamos a declarar la funcin Api y dos constantes :

'Declaracin de la funcin ExitWindowsEx Private Declare Function ExitWindowsEx Lib "User32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long 'Constanets para la funcin
http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]

Recursos Visual Basic - Tutorial Api parte 1

Const cerrarWin = 1 Const reiniciarWin = 2

Como podemos ver la funcin lleva 2 parmetros de tipo numricos long: uflags y dwreserved. A nosotros el parmetro que nos interesa es el primero, y es el cual, dependiendo del valor que le pasemos, reiniciar o cerrar windows. Las constantes cerrarwin y reiniciarwin son las que le pasaremos a la funcin. Nota: aunque nosotros utilicemos solo el
http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]

Recursos Visual Basic - Tutorial Api parte 1

primer parmetro, en el segundo, dwreserved, debemos pasarle el valor 0. 3 - En el evento click del Command1 escribe la siguiente rutina:

Dim retorno As Long If Option1 Then retorno ExitWindowsEx(reiniciar, 0) If Option2 Then retorno ExitWindowsEx(cerrar, 0) = =

La variable retorno, retornar el valor de la funcin Api y la ejecutar, mediante una


http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]

Recursos Visual Basic - Tutorial Api parte 1

estructura if evaluamos que botn de opcin esta en estado verdadero, si es el option1, a la funcin le pasamos la constante reiniciarwin. Si es el option2 le pasamos la otra constante.

El cdigo completo:

'Declaracin de la funcin Api Private Declare Function ExitWindowsEx Lib "User32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long 'Constantes para pasarle a la funcin Const cerrar = 1
http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]

Recursos Visual Basic - Tutorial Api parte 1

Const reiniciar = 2 'Cdigo del Botn Private Sub Command1_Click() 'Variable para retornar un valor e indicarnos si handubo bien o fall la llamada Dim retorno As Long 'Dependiendo el Option seleccionado reiniciamos o apagamos If Option1 Then retorno = ExitWindowsEx(reiniciar, 0) If Option2 Then retorno = ExitWindowsEx(cerrar, 0) End Sub
http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]

Recursos Visual Basic - Tutorial Api parte 1

Ejemplo 2 Obtener informacin de las unidades de disco.

En este ejemplo vamos a utilizar una funcin Api llamada GetVolumeInformation. Esta funcin es
http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]

Recursos Visual Basic - Tutorial Api parte 1

muy simple de utilizar y la funcin que tiene es la de recuperar informacin de las unidades de nuestra pc. Cuando hablamos de unidades estamos hablando de cualquier unidad accesible, ya sea las unidades fijas como la c o las particiones que pueda haber en el sistema, las unidades de disquetes o de cd-rom, unidades de red, etc... La informacin que podemos recuperar con la funcin GetVolumeInformation: El nmero de serie, el nombre del volumen , el sistema de archivos de la unidad a la cual le especifiquemos en la
http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]

Recursos Visual Basic - Tutorial Api parte 1

funcin.

Vista previa del ejemplo:

http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]

Recursos Visual Basic - Tutorial Api parte 1

La declaracin completa de la funcin GetVolumeInformation es la siguiente:

'Declaracin GetVolumeInformation

de

http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]

Recursos Visual Basic - Tutorial Api parte 1

Private Declare Function GetVolumeInformation Lib "Kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long

Descripcin de la funcin GetVolumeInformation:

Api

http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]

Recursos Visual Basic - Tutorial Api parte 1

Como podemos ver la funcin se encuentra en el archivo kernell32.exe y seguido el nombre del alias de la funcin dentro del archivo para que sea identificada. En el primer parmetro llamado lpRootPathName de tipo String, nosotros debemos enviarle el nombre de la unidad que deseamos tener informacin, unidad a,c,d, etc... El segundo parmetro llamado lpVolumeNameBuffer de tipo string, tenemos que pasarle una variable que almacenar el nombre del volumen de la
http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]

Recursos Visual Basic - Tutorial Api parte 1

unidad. El tercer parmetro no nos interesa. El cuarto, lpVolumeSerialNumber hay que pasar una variable que almacenar el nmero de serie de la unidad El quinto, sexto y octavo parmetro no nos interesa. El sptimo, llamado lpFileSystemNameBuffer, nos devolver el nombre del sistema de archivos de dicha unidad, por ejemplo Fat16, Fat32, NTFS,

Pasos a seguir:
http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]

Recursos Visual Basic - Tutorial Api parte 1

1 - Crea un nuevo proyecto. En el form principal agrega los siguientes controles: Un control DriveListBox (este control nos permitir seleccionar una unidad, y luego enviarle el valor seleccionado a la funcin api para especificarle que unidad queremos tener informacin). Un command1 (el botn que llamar a la funcin). 3 controles label (nos mostrar la
http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]

Recursos Visual Basic - Tutorial Api parte 1

informacin devuelta por la funcin api). En la zona de declaraciones declara o escribe la funcin api:

El cdigo completo :

'Declaracin de la funcin APi GetVolumeInformation Private Declare Function GetVolumeInformation Lib "Kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal
http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]

Recursos Visual Basic - Tutorial Api parte 1

lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long Private Sub Command1_Click() 'Para almacenar la unidad elegida del DriveListBox Dim unidad As String 'Variable que retorna el Numero de serie del volumen Dim Nserie As Long
http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]

Recursos Visual Basic - Tutorial Api parte 1

'Para almacenar el sistema de archivos Dim sistemaArchivos As String 'Para retornar el nombre del volumen Dim volumen As String 'Para saber si funcion o no la llamada a la funcin Api Dim retorno As Long volumen = String$(255, Chr$(0)) sistemaArchivos = String$(255, Chr$(0)) unidad = Drive1 unidad = Left(unidad, 2) & "\" 'Llamamos a la funcin,
http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]

Recursos Visual Basic - Tutorial Api parte 1

pasandole las variables retorno = GetVolumeInformation(unidad, volumen, Len(volumen), Nserie, 0, 0, sistemaArchivos, Len(sistemaArchivos)) 'Mostramos los valores retornados y los mostramos en los controles Label LabelVol = Trim(volumen) LabelSerie = Nserie LabelSA = Trim(sistemaArchivos) End Sub Private Sub Command2_Click() 'Finalizamos el programa End End Sub
http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]

Recursos Visual Basic - Tutorial Api parte 1

Private Sub Drive1_Change() On Local Error Resume Next End Sub

La variable unidad, que es de tipo string, y contendr el valor de la unidad seleccionada en el drive1. Para poder pasarla a la funcin Api correctamente, debemos agregarle la barra invertida "\" Despus las variables Nserie, sistemaArchivos y volumen se la pasamos como parmetro a la funcin para almacenar y retornar los valores.
http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]

Recursos Visual Basic - Tutorial Api parte 1

Por ltimo mostramos variables en los Labels

el

valor

de

las

Api parte 1 - Api parte 2 - Api parte 3

Buscar en Recursos vb

http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]

Recursos Visual Basic - Tutorial Api parte 1


Buscar

Curso de Esttica
www.ceac.com

Aprende todo de Esttica y Belleza Mejora ya tu futuro profesional!

Recursos visual basic Buscar Privacidad - Copyright 2005 - 2009 -

www.recursosvisualbasic.com.ar

http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]

Anda mungkin juga menyukai