Api vb
Tutoriales - Manuales
Cdigo fuente
Ejemplos vb.net
Buscar
Seccin de manuales vb
tutoriales
http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]
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]
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]
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]
kernel32.exe: Este este archivo, que es el ncleo del sistema operativo , reciden funciones para obtener o
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]
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]
Private
Declare
Function
http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]
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]
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]
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]
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]
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
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
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
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]
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]
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]
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]
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) = =
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]
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]
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]
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]
funcin.
http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]
'Declaracin GetVolumeInformation
de
http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]
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
Api
http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]
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]
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]
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]
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]
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]
'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]
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]
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]
el
valor
de
las
Buscar en Recursos vb
http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]
Curso de Esttica
www.ceac.com
www.recursosvisualbasic.com.ar
http://www.recursosvisualbasic.com.ar/...utoriales/tutorial-api1.htm[29/07/2011 12:59:18]