hacker


Ingresar con nombre de usuario, contraseña y duración de la sesión
| Portal Hacker | Editorial | Descargas | Ezine |
Inicio Ayuda Ingresar Registrarse
25 de Julio de 2008, 09:11:35
Noticias: Te gusta el nuevo diseño?
Opina al respecto en:
Para ver este enlace Registrate o Inicia Sesion
Este Tema

+  Foros pOrtal Hacker
|-+  Programacion
| |-+  Programación en general
| | |-+  Visual Basic (Moderadores: ranefi, crypto136, ziBboh, >> s E t H <<)
| | | |-+  Manual Api
0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: Manual Api  (Leído 450 veces)
MaN!FesT
NZ2
**
Desconectado Desconectado

Mensajes: 320


¡¡¡ FuCk It All !!!


Ver Perfil
« : 31 de Octubre de 2006, 04:27:42 »

Bueno otra vez yo molestando bueno está vez les dejó un manual de las funciones api y tal vez digan por que lo pone aqui este tipo pero este es para el lenguaje Visual Basic bueno empezemos.
En línea
MaN!FesT
NZ2
**
Desconectado Desconectado

Mensajes: 320


¡¡¡ FuCk It All !!!


Ver Perfil
« Respuesta #1 : 31 de Octubre de 2006, 04:47:05 »

Introducción:

El término Api significa "Plataforma de interface para el desarrollo de aplicaciones". Las Api son funciones que se encuentran compiladas y almacenadas en archivos con extención dll o exe , bajo el directorio de microsoft o bien 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 podrían lograr. Por ejemplo imaginen que tienen que desarrollar una aplicación y que la misma tenga una opción para cerrar o apagar el sistema. Visual basic u otros lenguajes no incorporan ninguna función para dicha tarea. Windows nos brinda una función Api llamada ExitWindowEx para realizar este procedimiento y muchas otras tareas, que desde visual basic solamente, jamás podríamos realizar. En definitiva las funciones Api son funciones externas a un lenguaje de programación. También podemos agregar que teniendo suficientes conocimientos de programación, y con un lenguaje apropiado como c++, podemos crear dichas funciones.

Estas funciones Api se encuentran almacenadas dentro de archivos con extención dll o archivos ejecutables exe en el directorio de sistema de windows, puede ser system, system32 etc.. dependiendo de la versión de la plataforma

A continuación los 5 archivos que contienen algunas de dichas funciones:

    *  kernel32.exe: Este este archivo, que es el núcleo 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 gráficos y todo lo relacionado con la pantalla.
    * winmm.dll: Este archivo,que es una abreviación 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.
Bueno ahora como diablos se utilizan?

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

Código:
Private Declare Function ExitWindowsEx Lib "User32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long

Esta función Api llamada ExitWindowsEx se utiliza para cerrar windows, reiniciar el sistema, cambiar de sesión etc...(molestar a personas etc.. jeje)

La palabra "Private" indica que la función Api es de tipo Privada, o sea que solo se podrá acceder desde el formulario o módulo de código donde esté declarada. Si quisiéramos acceder a una Api desde cualquier parte de un proyecto, lo haríamos declarando la función en un módulo de código con la palabra "Public". Como cualquier función que queremos que está visible a nivel global, o simplemente poniendo "Declare Function".

Después de esto le sigue el nombre de la función que vamos a utilizar, en este caso "ExitWindowsEx", seguido de la palabra reservada lib donde indicamos el archivo que contiene la función, es decir el archivo físico en el disco, en este caso es el archivo "user32.dll".

Por último la función lleva 2 parámetros de tipo "Long", que le debemos pasar a la misma, seguido del tipo de dato que devolverá o retornará la función Api, en este caso de tipo long.

# 1 - La ventaja principal es que podemos realizar tareas que de otro modo no se podrían lograr, sin utilizar controles Activex externos.
# 2 - 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 que el mismo sistema operativo utiliza para realizar sus tareas.
# 3 - Otra ventaja es que cuando compilamos un ejecutable, no tenemos que incorporar en el paquete de instalación, las librerías 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 función mal escrita, o un uso mal de la función, hará que no se ejecute lo que nosotros realmente esperamos.
# 5 - Por último cabe aclarar que en este resumido tutorial y en cualquier otro tutorial que encuentres, jamás podrás ver por completo todo esto relacionado a las funciones Api, ya que son miles de funciones y no alcanzarían ni 1000 manuales como para explicar todo. El sitio con mas información es sin duda la web de Microsoft, pero la mayoría de los ejemplos no están en Visual Basic por lo tanto se complica un poco buscar información.

Primer ejemplo usando una función Api - Apagar y reiniciar Windows


El programa que consistirá en un formulario mediante el cual, por medio de un botón podremos reiniciar o cerrar windows y/o apagar la pc, utilizando para ello la función 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 en Windows 98, en windows XP se han hecho un par de modificaciones en la función, por lo tanto no funciona pero no te preocupes ahorita lo explico primero Windows 98 y luego Xp.

Pasos a seguir:

1 -Abre Visual luego pon un form, en el form principal 2 controles Optionbutton y un 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 sección de declaraciones vamos a declarar la función Api y dos constantes :
Código:
'Declaración de la función ExitWindowsEx
Private Declare Function ExitWindowsEx Lib "User32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long

'Constanets para la función
Const cerrarWin = 1
Const reiniciarWin = 2

Como podemos ver la función lleva 2 parámetros de tipo numéricos long: uflags y dwreserved. A nosotros el parámetro 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 función.

Nota: aunque nosotros utilicemos solo el primer parámetro, en el segundo, dwreserved, debemos pasarle el valor 0.

En las propiedades del Command1 ponen esto:
Código:
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 función Api y la ejecutará, mediante una estructura if evaluamos que botón de opción esta en estado verdadero, si es el option1, a la función le pasamos la constante reiniciarwin. Si es el option2 le pasamos la otra constante.
Bueno aquí esta todo el codigo:
Código:
'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
En línea
MaN!FesT
NZ2
**
Desconectado Desconectado

Mensajes: 320


¡¡¡ FuCk It All !!!


Ver Perfil
« Respuesta #2 : 31 de Octubre de 2006, 04:50:26 »

Bueno continuemos ahora como apagar y reiniciar Xp.

En un Formulario coloca 3 Command, Command1, Command2 y Command3

El command1 permite loguearse, el command2 reiniciar el equipo y el Command3 Apagar el sistema.

Las 3 funciones, tienen un parámetro de tipo Boolean para determinar si se fuerza el cierre de aplicaciones que puedan estar abiertas.

También hay una función de tipo Boolean llamada IsWinNt, que detecta si se está corriendo el programa sobre dicha plataforma.

En el Formulario:
Código:
Private Sub Form_Load()
Command1.Caption = "Loguearse"
Command2.Caption = "reiniciar NT"
Command3.Caption = "Apagar NT"
End Sub

'Loguearse
Private Sub Command1_Click()
LogOffNT True
End Sub

'Reiniciar
Private Sub Command2_Click()
RebootNT True
End Sub

'Apagar
Private Sub Command3_Click()
ShutDownNT True
End Sub

Ahora en un Módulo.
Código:
'Constantes
Private Const EWX_LOGOFF = 0
Private Const EWX_SHUTDOWN = 1
Private Const EWX_REBOOT = 2
Private Const EWX_FORCE = 4
Private Const TOKEN_ADJUST_PRIVILEGES = &H20
Private Const TOKEN_QUERY = &H8
Private Const SE_PRIVILEGE_ENABLED = &H2
Private Const ANYSIZE_ARRAY = 1
Private Const VER_PLATFORM_WIN32_NT = 2

'Estructura para obtener información de Windows

Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
End Type
Type LUID
LowPart As Long
HighPart As Long
End Type
Type LUID_AND_ATTRIBUTES
pLuid As LUID
Attributes As Long
End Type
Type TOKEN_PRIVILEGES
PrivilegeCount As Long
Privileges(ANYSIZE_ARRAY) As LUID_AND_ATTRIBUTES
End Type

'Funciones Api
Private Declare Function GetCurrentProcess Lib "kernel32" () As Long
Private Declare Function OpenProcessToken Lib "advapi32" (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, TokenHandle As Long) As Long
Private Declare Function LookupPrivilegeValue Lib "advapi32" Alias "LookupPrivilegeValueA" (ByVal lpSystemName As String, ByVal lpName As String, lpLuid As LUID) As Long
Private Declare Function AdjustTokenPrivileges Lib "advapi32" (ByVal TokenHandle As Long, ByVal DisableAllPrivileges As Long, NewState As TOKEN_PRIVILEGES, ByVal BufferLength As Long, PreviousState As TOKEN_PRIVILEGES, ReturnLength As Long) As Long
Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (ByRef lpVersionInformation As OSVERSIONINFO) As Long

'Mediante esta función detectamos si estamos corriendo sobre un NT
Public Function IsWinNT() As Boolean
Dim myOS As OSVERSIONINFO
myOS.dwOSVersionInfoSize = Len(myOS)
GetVersionEx myOS
IsWinNT = (myOS.dwPlatformId = VER_PLATFORM_WIN32_NT)
End Function


Private Sub EnableShutDown()
Dim hProc As Long
Dim hToken As Long
Dim mLUID As LUID
Dim mPriv As TOKEN_PRIVILEGES
Dim mNewPriv As TOKEN_PRIVILEGES
hProc = GetCurrentProcess()
OpenProcessToken hProc, TOKEN_ADJUST_PRIVILEGES + TOKEN_QUERY, hToken
LookupPrivilegeValue "", "SeShutdownPrivilege", mLUID
mPriv.PrivilegeCount = 1
mPriv.Privileges(0).Attributes = SE_PRIVILEGE_ENABLED
mPriv.Privileges(0).pLuid = mLUID


AdjustTokenPrivileges hToken, False, mPriv, 4 + (12 * mPriv.PrivilegeCount), mNewPriv, 4 + (12 * mNewPriv.PrivilegeCount)
End Sub

'Función para apagar, la variable Force obliga a cerrar todos los programas si se pasa como True
Public Sub ShutDownNT(Force As Boolean)
Dim ret As Long
Dim Flags As Long
Flags = EWX_SHUTDOWN
If Force Then Flags = Flags + EWX_FORCE
If IsWinNT Then EnableShutDown
ExitWindowsEx Flags, 0
End Sub

'Función para reiniciar, la variable Force obliga a cerrar todos los programas si se pasa como True
Public Sub RebootNT(Force As Boolean)
Dim ret As Long
Dim Flags As Long
Flags = EWX_REBOOT
If Force Then Flags = Flags + EWX_FORCE
If IsWinNT Then EnableShutDown
ExitWindowsEx Flags, 0
End Sub

'Función para loguearse, la variable Force obliga a cerrar todos los programas si se pasa como True
Public Sub LogOffNT(Force As Boolean)
Dim ret As Long
Dim Flags As Long
Flags = EWX_LOGOFF
If Force Then Flags = Flags + EWX_FORCE

ExitWindowsEx Flags, 0
End Sub
En línea
MaN!FesT
NZ2
**
Desconectado Desconectado

Mensajes: 320


¡¡¡ FuCk It All !!!


Ver Perfil
« Respuesta #3 : 31 de Octubre de 2006, 04:57:40 »

Ahora averiguar información de las unidades de disco.

En este ejemplo vamos a utilizar una función Api llamada GetVolumeInfor mation. Esta función es muy simple de utilizar y la función que tiene es la de recuperar información 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 información que podemos recuperar con la función GetVolumeInfor mation:

El número de serie, el nombre del volumen , el sistema de archivos de la unidad a la cual le especifiquemos en la función.

La declaración completa de la función GetVolumeInfor mation es la siguiente:

Código:
'Declaración de GetVolumeInformation
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

Descripción de la función Api GetVolumeInfor mation:



Como podrán ver la función se encuentra en el archivo kernell32.exe y seguido el nombre del alias de la función dentro del archivo para que sea identificada.

    En el primer parámetro llamado lpRootPathName de tipo String, nosotros debemos enviarle el nombre de la unidad que deseamos tener información, unidad a,c,d, etc...

    El segundo parámetro llamado lpVolumeNameBu ffer de tipo string, tenemos que pasarle una variable que almacenará el nombre del volumen de la unidad.

    El tercer parámetro no nos interesa. El cuarto, lpVolumeSerial Number hay que pasar una variable que almacenará el número de serie de la unidad

    El quinto, sexto y octavo parámetro no nos interesa.

    El séptimo, llamado lpFileSystemNa meBuffer, nos devolverá el nombre del sistema de archivos de dicha unidad, por ejemplo Fat16, Fat32, NTFS,

 Díos se me olvídaba lo que hiban a poner bueno agregar los siguientes controles:

    * Un control DriveListBox (este control nos permitirá seleccionar una unidad, y luego enviarle el valor seleccionado a la función api para especificarle que unidad queremos tener información).
    * Un command1 (el botón que llamará a la función).
    * 3 controles label (nos mostrará la información devuelta por la función api).
    * En la zona de declaraciones declara o escribe la función api:

Obvio en un proyecto nuevo.

El codigo Completo:
Código:
'Declaración de la función APi GetVolumeInformation
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


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
'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 función Api
Dim retorno As Long

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

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

unidad = Drive1

unidad = Left(unidad, 2) & "\"
'Llamamos a la función, 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

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 función Api correctamente, debemos agregarle la barra invertida "\"

Después las variables Nserie, sistemaArchivo s y volumen se la pasamos como parámetro a la función para almacenar y retornar los valores.

Por último mostramos el valor de las variables en los Labels.

Lo mostraría con imagenes pero no tengo tiempo jeje cuando lo tenga lo pondre vale.
En línea
MaN!FesT
NZ2
**
Desconectado Desconectado

Mensajes: 320


¡¡¡ FuCk It All !!!


Ver Perfil
« Respuesta #4 : 31 de Octubre de 2006, 05:05:19 »

API GlobalMemorySt atus para obtener información de la memoria del sistema.

Bueno an de decir ay este wüey por los ejemplos pero también con estas practicas se van dando cuenta para que sirven estos codigos y ir sabiendo mas de este bueno prosigamos:

Con la función Api GlobalMemorySa tus podemos obtener información de la memoria del sistema, ya sea la memoria libre, la memoria usada, el total de la memoria física y el estado de la memoria swap o archivo de intercambio de windows (memoria virtual)

Para poder utilizar esta función es necesario declarar junto con la función Api GlobalMemorySa tus, una estructura de datos de tipo MEMORYSTATUS

La declaración de la función Api y la estructura de datos mencionada es la siguiente:

Código:
'Api GlobalMemoryStatus
Private Declare Function GlobalMemoryStatus Lib "Kernel32" (lpBuffer As MEMORYSTATUS) As Long

'Type o estructura para usar con GlobalMemoryStatus
Private Type MEMORYSTATUS

dwLength As Long
dwMemoryLoad As Long
dwTotalPhys As Long
dwAvailPhys As Long
dwTotalPageFile As Long
dwAvailPageFile As Long
dwTotalVirtual As Long
dwAvailVirtual As Long

End Type

Como podemos ver la función tiene una estructura de datos definida.
El campo o variable dwLength no nos retorna un valor de información específica sobre el estado de la memoria. Esta variable es necesaria cargarla antes de llamar a la función para que nos devuelva los valores que queremos obtener sobre la memoria.
si no cargamos esta variable antes de llamar a la función, esta función no funcionará.

En un formulario colocamos una serie de controles Labels que nos informarán sobre el estado de la memoria. Los datos a mostrar serán:

    * Memoria libre del sistema en porcentaje.
    * Memoria física total del sistema
    * Memoria física libre o disponible.
    * Memoria usada por el archivo de paginación.

   1. Agrega 4 controles Labels. Uno que diga Memoria libre disponible, otro Memoria física total, otro Memoria física disponible y el último Archivo de paginación. Al costado del Label Memoria Disponible coloca un Label1, al costado de Memoria Física total un Label2, en el otro un Label3 y en el último un Label4 (Estos 4 Labels mostrarán los datos)
   2. Coloca un botón de comando que lo utilizaremos para refrescar o actualizar los datos de la memoria con el Caption "Mostrar Memoria".
   3. Coloca 2 controles Shape como está en la imagen para mostrar el porcentaje (Shape1 y Shape2)

Código:
'Función GlobalMemoryStatus
Private Declare Function GlobalMemoryStatus Lib "Kernel32" (lpBuffer As MEMORYSTATUS) As Long

'type GlobalMemoryStatus
Private Type MEMORYSTATUS

dwLength As Long
dwMemoryLoad As Long
dwTotalPhys As Long
dwAvailPhys As Long
dwTotalPageFile As Long
dwAvailPageFile As Long
dwTotalVirtual As Long
dwAvailVirtual As Long

End Type

Private Sub Command1_Click()
MostrarMemoria
End Sub

Private Sub MostrarMemoria()
'Variable de tipo MEMORYSTATUS para obtener los datos devueltos por la función api
Dim memoria As MEMORYSTATUS
'variable de retorno
Dim retorno As Long

Dim porcentaje As Integer

memoria.dwLength = Len(memoria)
retorno = GlobalMemoryStatus(memoria)

porcentaje = 100 - memoria.dwMemoryLoad

Label1 = Format(porcentaje, "00.0") & "%"

Shape2.Width = 1935 / 100 * porcentaje 'Mostramos el porcentaje representado en el control Shape

'Mostramos la información en los labels devueltos
Label2 = Format(memoria.dwTotalPhys / 1000000, "00.0") & " MB" 'Memoria total
Label3 = Format(memoria.dwAvailPhys / 1000000, "00.0") & " MB" 'Memoria libre
Label4 = Format((memoria.dwTotalPageFile - memoria.dwAvailPageFile) / 1000000, "00.0") & " MB" 'Memoria Virtual

End Sub

Private Sub Form_Load()
'Llamamos a la sub
MostrarMemoria

Command1.Caption = "Mostrar memoria"

End Sub

 En la línea Dim memoria As MEMORYSTATUS creamos una variable de tipo MEMORYSTATUS para luego poder acceder a los valores que retorne la función Api.

En la línea Dim porcentaje As Long creamos una variable que contendrá el porcentaje de la memoria libre

En la líneamemoria.dwLength = Len(memoria) cargamos la variable dwLength con el tamaño de la estructura antes de llamar a la función

En esta línea llamamos a la función GlobalMemorySt atus
retorno = GlobalMemorySt atus(memoria)

en porcentaje = 100 - memoria.dwMemo ryLoad estamos asignando a la variable porcentaje la memoria libre del sistema. como el valor dwMemoryLoad lo devuelve en un número que es el porcentaje real de memoria, para obtener el porcentaje de memoria libre le restamos a 100 el valor de la memoria leída.

En la líneaLabel2 = Format(porcentaje, "00.0") & "%" asignamos al label2 el valor del porcentaje de memoria pero con el formato con un dígito después del decimal y le agregamos el caracter de porcentaje.

Para mostrar una barra de porcentaje que indíque la memoria libre,se agregan 2 controles shape. Colocando un control shape1 sin relleno, o sea que se vea solo el contorno del mismo, . Luego agrega otro shape2 exactamente del mismo tamaño y lo colocas justo encima del otro shape1, pero a este le pones un color de fondo que sea sólido. luego pega este código:

En la línea

Label3 = Format(memoria.dwTota lPhys / 1000000, "00.0") & " MB"

Obtenemos el valor de la memoria física total del sistema. Como todos los valores retornados por la función api están expresados en bytes nosotros lo convertiremos a Megabytes . Luego le aplicamos el formato como lo hemos hecho en la línea anterior.

La linea

Label4 = Format(memoria.dwAvai lPhys / 1000000, "00.0") & " MB" 

obtenemos la memoria física disponible

En la última línea obtenemos la memoria utilizada por el archivo de intercambio o archivo de paginación

Por último para refrescar los datos , en el command1 en el evento Click volvemos a ejecutar al procedimiento MostrarMemoria, con esto llamamos nuevamente a la rutina y los datos se actualizan.

======================================================================

Bueno ojalá les guste el manual me desbele haciendolo mas vale que les guste. No es cierto no pues ojala les guste para que así los que empiezan pues vayan entendiendo todo este rollo.
 Wink
« Última modificación: 01 de Noviembre de 2006, 04:45:01 por Manifest_06 » En línea
Páginas: [1] Ir Arriba Imprimir 
« anterior próximo »
Ir a:  


Ingresar con nombre de usuario, contraseña y duración de la sesión

Powered by SMF 1.1.5 | SMF © 2006-2008, Simple Machines LLC hacker

Juegos gratis - Articulos PHP - Juegos - Trucos - Letras - Juegos - Juegos Online