Bienvenido y disfruta el nuevo diseño del sitio web.... agradecería me envíes tus comentarios acerca de los cambios realizados

Para descargar cualquier archivo es necesario estar registrado y hacer click en el titulo del archivo a descargar

GetFileAttributes y SetFileAttributes

Visual Fox Pro, Funciones API Comentarios ( 0 ) »
Permiten conocer y manipular los
atributos de cualquier archivo. GetFileAttributes determina que atributos tiene
un archivo o archivos determinados y SetFileAttributes reestablece los atributos
a los que uno desee

DECLARE SHORT SetFileAttributes IN KERNEL32 ;

STRING @ lpFileName, ;

INTEGER dwAttributes



DECLARE INTEGER GetFileAttributes IN WIN32API STRING @ lpFileName

#DEFINE FILE_ATTRIBUTE_READONLY 1



=SetFileAttributes(_c:config.sys_,
BITOR(GetFileAttributes(_c:config.sys_),FILE_ATTRIBUTE_READONLY)) 

* Atributo de
solo lectura 



=SetFileAttributes(_c:config.sys_, 0) 

&& Remueve todos los atributos
del archivo

Por: David Amador T

GetFileSize

Visual Fox Pro, Funciones API Comentarios ( 0 ) »
Permite determinar el tamaño de un
archivo determinado, He recibido muchas consultas sobre esta función,
debido a que útil cuando queremos realizar Backup en Diskette.

 

declare integer GetFileSize in "kernel32.dll"
;

Long hFile, Long lpFileSizeHigh



Declare INTEGER CreateFile in "kernel32.dll",String lpFileName,;

Long dwDesiredAccess, Long
dwShareMode, string lpSecurityAttributes,;

Long dwCreationDisposition,Long dwFlagsAndAttributes, Long hTemplateFile



#define GENERIC_READ 2147483648

#define GENERIC_WRITE 1073741824

#define FILE_SHARE_READ 1

#define OPEN_EXISTING 3

#define FILE_ATTRIBUTE_ARCHIVE 32



hfile = CreateFile("C:autoexec.bat", GENERIC_READ, ;

FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_ATTRIBUTE_ARCHIVE, 0)



highorder = 0 && initialize the value for high-order half

?GetFileSize(hfile, highorder) 

Por: David Amador T

GetKeyboardState

Visual Fox Pro, Funciones API Comentarios ( 0 ) »
Muy parecido al anterior pero verifica a través
de un ciclo repetitivo el estado de cualquier tecla presionada

DECLARE SHORT GetKeyboardState IN WIN32API STRING @; pbKeyState



cKeyboardArray = REPLICATE(CHR(0),256)


IF GetKeyboardState(@cKeyboardArray) > 0

         LOCAL nI

         FOR nI = 1 TO 256

              IF BITAND(ASC(SUBST(cKeyboardArray,nI,1)),128) > 0

                  
? _Virtual Key # _ + TRANSFORM(nI - 1) + _ is currently down_

              ENDIF

        ENDFOR

ELSE

        =messagebox("Error")

ENDIF


Por: David Amador T

GetKeyState

Visual Fox Pro, Funciones API Comentarios ( 0 ) »
A través de esta función podemos determinar
si una tecla esta presionada en cualquier instante.


Es utilizada por Windows
cuando se pulsa Delete o Ctrl o Shift, para determinar como realiza la
operación de copiado, borrado, etc.

DECLARE SHORT GetKeyState in WIN32API INTEGER KEYCODE



&& Evalúa si esta presionada la tecla SHIFT

IF (GETKEYSTATE(16) < 0)

    MESSAGEBOX("Shift presionado")

ENDIF



&& Evalúa si esta presionada la tecla CONTROL (CTRL)

IF (GETKEYSTATE(17) < 0)

      MESSAGEBOX("CTRL presionado")

ENDIF



&& Evalúa si esta presionada la tecla ALT

IF (GETKEYSTATE(18) < 0)

     MESSAGEBOX("Alt presionado")

ENDIF


Por: David Amador T

GetShortPathName

Visual Fox Pro, Funciones API Comentarios ( 0 ) »
Devuelve la ruta de un archivo en la forma de msdos; es
decir, solo se tendrán en cuenta los 7 primeros caracteres de los archivos y
directorios.

DECLARE INTEGER GetShortPathName IN Win32API ;

STRING @cLongPath, ;

STRING @cShortPathBuff, ;

INTEGER nBuffSize



lcLongFile = getfile()  && muestra el cuadro de dialogo buscar
archivo

lcBuffer = SPACE(511)

lnBufferSize = 511

lnShortPathLen = GetShortPathName(lcLongFile, @lcBuffer, @lnBufferSize)



lcShortPath = LEFT(lcBuffer, lnBufferSize)

=messagebox(lcShortPath)


Por: David Amador T

GetSysColor

Visual Fox Pro, Funciones API Comentarios ( 0 ) »

Devuelve
el valor del color en formato RGB de los objetos y
ventanas de Windows




DECLARE INTEGER GetSysColor IN Win32API
INTEGER nObject




tnObjectNumber = 2  &&
Ventana Activa



 



lnWinCol =
GetSysColor(tnObjectNumber)




lnSq256 = 256 ^ 2

lnRedGrn = MOD( lnWinCol, lnSq256 )




lcBlue = TRANSFORM( INT( lnWinCol/lnSq256 ) )

lcGreen = TRANSFORM( INT( lnRedGrn/256) )

lcRed = TRANSFORM( MOD( lnRedGrn,256) )




? (lcRed + "," + lcGreen + "," +
lcBlue)



Estas
son las constantes para los elementos de Windows y se hace referencia
ellos con la variable tnObjectNumber




Background (Windows Desktop)



Title Bar (Active Window)



Title Bar (Inactive Window)



Window Background



Title Bar Caption Text (Active Window)


19 
Title Bar Caption Text (Inactive Window)


13 
Highlighted Item Background


14 
Highlighted Item Text


17 
Command Button


18  Command Button Text

Por: David Amador T

GetSystemMetrics

Visual Fox Pro, Funciones API Comentarios ( 0 ) »
La función GetSystemMetrics provee mucha información
a Windows, En este caso podemos determinar la forma como inicio Windows; Es
decir: Modo a prueba de fallos, Normal, o con soporte de red.

Declare integer GetSystemMetrics in "user32";

Long nIndex



#define SM_CLEANBOOT 67 



iNiWin = GetSystemMetrics(SM_CLEANBOOT)


Do Case iNiWin

     Case = 1

         =MESSAGEBOX("A prueba de Fallos")

     Case = 2

         =MESSAGEBOX("A prueba de fallos con soporte de Red")

Otherwise

     =MESSAGEBOX("Windows inicio normalmente")

Endcase





Devuelve los valores acerca de la configuración del monitor, resolución,
numero de colores soportados, entre otros. útil para programación multimedia.


Declare integer GetSystemMetrics in "user32",; 

Long nIndex 





resolucionX = GetSystemMetrics()

resolucionY = GetSystemMetrics()



=messagebox(str(resolucionX)+" X"+ str(resolucionY))


Por: David Amador T

VerifyScreenSavePwd

Visual Fox Pro, Funciones API Comentarios ( 0 ) »

Muestra el cuadro de diálogo para comprobar el password del
protector de pantalla actual de Window


Declare integer VerifyScreenSavePwd in "password.cpl" Long hwnd



= VerifyScreenSavePwd(thisform.hwnd)



If Ret = 1 Then



=MessageBox "Password correcto o este ScreenSaver no tiene asociado Password "

Else

=MessageBox "Password Incorrecto"

EndIf


Por: David Amador T

InternetDial, InternetAutoDial, InternetAutodialHangup

Visual Fox Pro, Funciones API Comentarios ( 0 ) »

Permite conectarse a Internet utilizando la conexión
existente u otra. Muy Buena


#DEFINE INTERNET_AUTODIAL_FORCE_ONLINE 1 

#DEFINE INTERNET_AUTODIAL_FORCE_UNATTENDED 2 



DECLARE INTEGER InternetDial IN wininet.dll;

INTEGER hwndParent, STRING @ lpszConnectoid, ;

INTEGER dwFlags, INTEGER @ lpdwConnection, ;

INTEGER dwReserved



DECLARE INTEGER InternetAutodial IN wininet.dll; 

INTEGER dwFlags, INTEGER hwndParent



DECLARE INTEGER InternetAutodialHangup IN wininet.dll; 

INTEGER dwReserved 



* Conecta con una conexión determinada

strConnection = "Internet"

nConnection = 0



*= InternetDial(0, strConnection, INTERNET_AUTODIAL_FORCE_UNATTENDED, ;

* nConnection, 0)



* Conecta con la conexión por defecto

= InternetAutodial(INTERNET_AUTODIAL_FORCE_ONLINE, 0) 



* Conecta mostrando el cuadro de conexión

*= InternetAutodial(INTERNET_AUTODIAL_FORCE_UNATTENDED, 0) 



* Disconecta

*= InternetAutodialHangup(0) 


Por: David Amador T

TextOut y GetWindowDC

Visual Fox Pro, Funciones API Comentarios ( 0 ) »

DECLARE INTEGER GetActiveWindow IN user32 

DECLARE INTEGER GetWindowDC IN user32 INTEGER hwnd 



DECLARE INTEGER TextOut IN gdi32;

INTEGER hdc, INTEGER x, INTEGER y,; 

STRING lpString, INTEGER nCount 



lcText = "La Web de Davphantom" 



hwnd = GetActiveWindow() 

hdc = GetWindowDC (hwnd) 



= TextOut (hdc, 50, 100, lcText, Len(lcText)) 


Por: David Amador T

CreateDirectory, RemoveDirectory

Visual Fox Pro, Funciones API Comentarios ( 0 ) »

Permiten
realizar acciones sobre directorios




API para Crear Directorio



 



DECLARE INTEGER CreateDirectory IN WIN32API ;

STRING cNewDir, ;

STRING cAttrib




tcDirName = "c:dav"




lnSuccess = CreateDirectory ( tcDirName, "")

lcRetVal = IIF( lnSuccess = 1, "Creado", "Fallo" )



Api para Eliminar Directorio




DECLARE INTEGER RemoveDirectory IN WIN32API ;

STRING cKillDir




tcDirName ="c:dav"



 



lnSuccess = RemoveDirectory( tcDirName)

lcRetVal = IIF( lnSuccess = 1, "Removed", "Failed" )


Por: David Amador T

GetWindowsDirectory

Visual Fox Pro, Funciones API Comentarios ( 0 ) »


Devuelve la ruta del directorio donde instalado Windows


DECLARE INTEGER GetWindowsDirectory IN Win32API ;

STRING @cBuffer, ;

INTEGER nSize



lcSysDir = REPLICATE(CHR(0),255)

lnBuffer = 255



lnDirLen = GetWindowsDirectory( @lcSysDir, lnBuffer )

lcRetVal = LEFT( lcSysDir, lnDirLen )

? lcRetVal


Por: David Amador T

GetSystemDirectory

Visual Fox Pro, Funciones API Comentarios ( 0 ) »

Devuelve
la ruta del directorio System de Windows


DECLARE INTEGER GetSystemDirectory IN Win32API ;

STRING @cBuffer, ;

INTEGER nSize



lcSysDir = REPLICATE(CHR(0),255)

lnBuffer = 255





lnDirLen = GetSystemDirectory( @lcSysDir, lnBuffer )

lcRetVal = LEFT( lcSysDir, lnDirLen )

?lcRetVal


Por: David Amador T

SetSystemCursor

Visual Fox Pro, Funciones API Comentarios ( 0 ) »


Cambia el cursor de Windows a uno especificando el nombre de
este.



LOCAL lcNewCursor

tcCursorFile = "c:windowscursorsglobe.ANI"

tnCursorType = 32513



IF INLIST( JUSTEXT( tcCursorFile ), _CUR_, _ANI_ )

      

       IF FILE( tcCursorFile )

           DECLARE INTEGER LoadCursorFromFile in Win32Api String

           DECLARE SetSystemCursor in Win32Api Integer, Integer


          
lcNewCursor = LoadCursorFromFile( tcCursorFile )

           Lt = SetSystemCursor( lcNewCursor, tnCursorType )



      ELSE

         
=MESSAGEBOX("No se encuentra el cursor")

      ENDIF

ELSE

      =MESSAGEBOX("No es del tipo cursor")

ENDIF

Por: David Amador T

GetTickCount

Visual Fox Pro, Funciones API Comentarios ( 0 ) »
Esta API determina el tiempo que lleva tu equipo
encendido. En verdad es fascinante saber que puedes realizar muchas cosas con el
API.

Declare integer GetTickCount in "KERNEL32" () As Long



local lngCount, lngHours, lngMinutes As Long



lngCount = GetTickCount()



lngHours = ((lngCount / 1000) / 60) / 60



lngMinutes = ((lngCount / 1000) / 60) % 60






MESSAGEBOX("Su Computador tiene de estar encendido " + ALLTRIM(STR(lngHours))+;

+ " hora(s) y " + ALLTRIM(STR(lngMinutes)) + ;

" minutos.", 56, "Tiempo Encendido")

Por: David Amador T