Páginas

jueves, 29 de abril de 2010

Obteniendo información de la PC por medio de API’s desde VFP

Origen del Código news2news

CLEAR
#DEFINE MEMORYSTATUS_SIZE  32
DECLARE GlobalMemoryStatus IN kernel32;
    STRING @lpBuffer

PRIVATE cBuffer
cBuffer = REPLI(Chr(0), MEMORYSTATUS_SIZE)
= GlobalMemoryStatus(@cBuffer)
= Writeln("Memoria en USO, % ...................",  5)
= Writeln("Memoria Fisica en bytes ..........",  9)
= Writeln("Memoria Física disponible, bytes ...", 13)

PROCEDURE Writeln(cCaption, nOffs)
    LOCAL nSize
    nSize = buf2dword(SUBSTR(cBuffer,nOffs,4))
    ? cCaption + " " + ALLTRIM(TRANS(nSize, "999,999,999,999,999,999"))

FUNCTION buf2dword(cBuffer)
RETURN Asc(SUBSTR(cBuffer, 1,1)) + ;
    BitLShift(Asc(SUBSTR(cBuffer, 2,1)),  8) +;
    BitLShift(Asc(SUBSTR(cBuffer, 3,1)), 16) +;
    BitLShift(Asc(SUBSTR(cBuffer, 4,1)), 24)

No hay comentarios: