Duda con las API

Iniciado por Ultra-Xandre, 11 Mayo 2008, 10:53 AM

0 Miembros y 1 Visitante están viendo este tema.

Ultra-Xandre

Hola, vereis, tengo un problema con las API. Os cuento.
Estoy iniciándome en las API y me leí un tutorial y ponen como ejemplo esta API:
Private Declare Function ExitWindowsEx Lib "User32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
Ya sé que lo de ExitWindowsEx y lo de User32 va a cambiar, bien, pero, (ByVal uFlags As Long, ByVal dwReserved As Long) As Long ¿va a cambiar? Otra cosa. En Lib, user32.dll o user32, ¿qué se pone?

Y por último, me pusieron este ejemplo:

'Declaración de la función Api
Private Declare Function ExitWindowsEx Lib "User32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
'Constantes para pasarle a la función
Const cerrar = 1
Const reiniciar = 2

'Código del Botón
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

La duda es If Option1 Then retorno = ExitWindowsEx(reiniciar, 0)
If Option2 Then retorno = ExitWindowsEx(cerrar, 0)
¿Por qué pone Reiniciar, 0?

seba123neo

Hola,no te entendi nada de lo primero,paro supongo que preguntas si lo podes cambiar,no se puede cambiar las apis ya traen esos parametros y variables,no podes agregarles variables..fijate en el api-viewer ahi estan casi todas las api's y constantes...pone reiniciar 0 porque son los valores que se le pasan a la api esa,reiniciar vale 0 y cerrar 1,dependiendo el valor reinicia o apaga...

saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

Ultra-Xandre

¿Y eses valores ya viene dados por defecto y se los tengo que dar yo?

Digo si esto:  (ByVal uFlags As Long, ByVal dwReserved As Long) As Long

¿Se puede cambiar o va a ser siempre así?

seba123neo

ya vienen asi,no tenes que tocar eso...por eso te digo fijate en el api viewer ahi estan la lista de 800 apis aproximadamente y 100000 constantes,ya vienen dadas y armadas,lo unico que tenes que hacer vos es copiarlas y usarlas...
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

Ultra-Xandre

Ok. ¿Y lo de ByVal... todo eso As long... ¿no se cambia nunca?

seba123neo

La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

Ultra-Xandre

Ah ok. Muchas gracias.

Ultra-Xandre

Sigo teniendo una duda que no entendíbien:
Private Declare Function ExitWindowsEx Lib "User32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
'Constantes para pasarle a la función
Const cerrar = 1
Const reiniciar = 2

¿Por qué Cerrar = 1 Reiniciar = 2?
¿No le puedo cambiar el valor? ¿Es que ese valor ya viene dado por Windows?

SKL (orignal)

no,  no se puede alterar ni las apis ni las constantes, porque de lo contrario tira un error...

asi que tenes que usarlas como estan ahora... a una api no le podes agregar una variable mas...

y las constantes no le podes alterar el numero, si el nombre.

sl2

Ultra-Xandre

Ajam, ok. Otra cosa. ¿Cada API tiene sus variables? ¿Vienen dadas con el API Viewer o API Guide?