elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  ayuda con APIs
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: ayuda con APIs  (Leído 3,902 veces)
SRVAM

Desconectado Desconectado

Mensajes: 130


Ver Perfil
ayuda con APIs
« en: 19 Agosto 2009, 15:46 pm »

bueno, como nunca he usado ninguna API, ya es hora de empezar, y he empezado usando una sencilla para conseguir informacion de las unidades de almacenamiento.

GetVolumeInformation

he mirado un ejemplo sobre como usarla, pero hay cosas que no entiendo bien y me gustaria que me lo aclaraseis por favor.

Código
  1. Private Declare Function GetVolumeInformation Lib "Kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String,
  2. ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long,
  3. lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long,
  4. lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String,
  5. ByVal nFileSystemNameSize As Long) As Long
  6.  
  7. Private Sub Command1_Click()
  8.  
  9. Dim unidad As String
  10. Dim serie As Long
  11. Dim sistemaArchivos As String
  12. Dim volumen As String
  13. Dim retorno As Long
  14.  
  15. volumen = String$(255, Chr$(0))
  16.  
  17. sistemaArchivos = String$(255, Chr$(0))
  18.  
  19. unidad = Drive1
  20.  
  21. unidad = Left(unidad, 2) & "\"
  22.  
  23. retorno = GetVolumeInformation(unidad, volumen, Len(volumen), serie, 0, 0, sistemaArchivos, Len(sistemaArchivos))
  24.  
  25. Label1.Caption = Trim(volumen)
  26. Label2.Caption = serie
  27. Label3.Caption = Trim(sistemaArchivos)
  28.  
  29. End Sub

-1º ->  por que en el ejemplo, a las variables volumen y sistemaArchivos se les asignan esos valores para luego pasarselos a la funcion?
-2º-> por que a la hora de pasar variables a la funcion algunas como volumen y sistemaArchivos se pasan, y ademas, tambien se pasa su longitud?

y bueno, esas pequeñas dudas solo con esta API, pero seguramente me iran surgiendo muchas dudas, porque a primera vista, parece complicado su uso debido a la cantidad de valores que hay que pasarles y demas.

pero bueno, a empollar se ha dicho.

saludos


« Última modificación: 19 Agosto 2009, 15:50 pm por SRVAM » En línea

C# Programmer

-Estudiante MCTS .NET Framework 3.5-
LeandroA
Moderador
***
Desconectado Desconectado

Mensajes: 760


www.leandroascierto.com


Ver Perfil WWW
Re: ayuda con APIs
« Respuesta #1 en: 19 Agosto 2009, 20:41 pm »

Hola cuando trabajas con apis y estas modifican un parametro de tipo String o Bits tenes que redimencionar para crear un buffer donde estas apis volcaran la informaición.

en el ejemplo que pusite hay una cosa mal te explico

volumen = String$(255, Chr$(0))

esto crea un buffer con un tamaño de  255 con todos Bits nulos

y despues al final utiliza la funcion

Label1.Caption = Trim(volumen)

Trim es solo para los espacios por lo que en este caso tu usaste Bits nulos  entonces no lo eliminara el exedente.

ahora si ubieras puesto


volumen = String$(255, Space(1))

y luego

Label1.Caption = Trim(volumen)

entoses si porque estaria quitando los ultimos espacios, pero esto puede traer una complejidad ya que suponte que  volumen termina con espacios estos se estarian perdiendo entonces es mejor utilizar bits nulos

y para quitar los bits nulos se utiliza  esta forma

volumen= Left$(volumen, InStr(1, volumen, Chr$(0)) - 1)

osea la izquierda hasta donde se encuentre el primer bits nulo


seguramente con la explicación que te di no querras ver mas una api  ;D

Saludos





En línea

SRVAM

Desconectado Desconectado

Mensajes: 130


Ver Perfil
Re: ayuda con APIs
« Respuesta #2 en: 19 Agosto 2009, 22:23 pm »

jajaj pues n oes asi leando, si que quiero ver mas APIs jajaja

con lo que dijiste si lo entendi, ahora se el por que de crear una cadena de texto "vacia"

pero es complicado esto de las APIs, al menos al principio, todo es acostumbrarse.

pero he visto ejemplos de APIs como para hacer un programa de ftp, y la wininet para poder usarla es un pedazo de modulo que no veas xDD no entendi ni la mitad xDD

a ver si consigo ir pillando bien como va estoy viendo que adios a mi ftp en condiciones xD
En línea

C# Programmer

-Estudiante MCTS .NET Framework 3.5-
seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: ayuda con APIs
« Respuesta #3 en: 20 Agosto 2009, 01:08 am »

hombre, recien empezas a ver api's y te fuiste ya a ver el codigo de un cliente FTP ?...creo que ahi esta el error de porque no lo entendes...tenes que empezar a ver la teoria primero...las api's mas comunes y mas faciles...despues ahi vas a entender las complejas, mira ejemplos y fijate que es lo que hacen y como se usan. por decirte algo empeza viendo la api de Beep()  :P

saludos.
En línea

SRVAM

Desconectado Desconectado

Mensajes: 130


Ver Perfil
Re: ayuda con APIs
« Respuesta #4 en: 20 Agosto 2009, 01:20 am »

seba he visto las de GetVolumeInformation  y exitwindowsEX

mire las de ftp porque tu me lo dijiste en otro mensae que puse, pero como eran muy complicadas decidi empezar por el principio, y aun asi teni algunas dudas.

y es que cuando son pocas variables las que se manejan no es complicado, pero cuando son muchas como en el API wininet, ya parece muy complicado saber como manejarlo todo.

valores, funciones, eventos... porque parece que un API no es como un control que tu pongas y puedas programar eventos no??

asi que ahi es donde me lio, no se exactamente como empezar
En línea

C# Programmer

-Estudiante MCTS .NET Framework 3.5-
MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.471


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: ayuda con APIs
« Respuesta #5 en: 20 Agosto 2009, 01:36 am »

Hola SRVAM.

Lo que te propongo es hacer algun tutorial sobre programación en Win32. No es necesario que sea de VB. Solamente te ayudaria a ver como trabaja Windows internamente.

Una vez que entiendas como trabaja el SO, vas a poder hacer cualquier cosa en él, en el lenguaje que sea...

Saludos!

En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

SRVAM

Desconectado Desconectado

Mensajes: 130


Ver Perfil
Re: ayuda con APIs
« Respuesta #6 en: 20 Agosto 2009, 03:09 am »

gracias MCKSys Argentina  la verdad es que no lo habia pensado, buscare algun tutorial y ya cuando empiece a programar ire diciendo que tal me va.

gracias a todos
En línea

C# Programmer

-Estudiante MCTS .NET Framework 3.5-
Dessa


Desconectado Desconectado

Mensajes: 624



Ver Perfil
Re: ayuda con APIs
« Respuesta #7 en: 20 Agosto 2009, 12:25 pm »

Te dejo un Link.

http://winapi.conclase.net/curso/index.php?tab=Funciones

S2

En línea

Adrian Desanti
Fabricio

Desconectado Desconectado

Mensajes: 115


Ver Perfil
Re: ayuda con APIs
« Respuesta #8 en: 20 Agosto 2009, 17:58 pm »

Hola SRVAM podes instalarte el API guide es muy util tiene ejemplos de un monton de apis  te explica para que se usa el api y tiene ejemplos de codigo

te dejo un link para que lo descargues
http://www.recursosvisualbasic.com.ar/htm/ocx-componentes-activex-dll/28-visor-de-funciones-api-viewer.htm#2

saludos
En línea

SRVAM

Desconectado Desconectado

Mensajes: 130


Ver Perfil
Re: ayuda con APIs
« Respuesta #9 en: 20 Agosto 2009, 23:14 pm »

gracias a todos por los enlaces, ya estoy en ello leyendo ejemplos y el tutorial sobre programacion en windows.

gracias por la ayuda.

saludos
En línea

C# Programmer

-Estudiante MCTS .NET Framework 3.5-
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
APIS de Python
Scripting
juan_1 2 2,379 Último mensaje 14 Mayo 2020, 19:52 pm
por juan_1
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines