Usuario de Windows es Administrador?
Visual Fox Pro, Trucos, Funciones API Comentarios ( 0 ) »Declare Integer IsUserAnAdmin In shell32
? "Usted es usuario Administrador: " + Iif(IsUserAnAdmin() = 1, "SI", "NO")
Por: David Amador T
		
		

		
		
		Ha copiado una nueva fuente y desea instalarla? o desea quitar una fuente que ya ha sido instalada?.
He observado algunos procedimientos de VB para ver como lo hacen pero creo que se complican mucho, en esta caso a través de GETFILE( ), obtenemos la fuente a instalar.
		Muestra el cuadro de diálogo para cambiar el password del protector de pantalla de Window.
Declare integer PwdChangePassword in "mpr"; 
      String lpcRegkeyname, Long hwnd,Long uiReserved1, Long uiReserved2
      
      =PwdChangePassword ("SCRSAVE", thisform.hwnd, 0, 0)
		
		Declare integer ConfigurePort in "winspool.drv"; 
String pName, Long hwnd, String pPortName
   =ConfigurePort("", 0 , "COM1:")
   =ConfigurePort("", 0 , "LPT1:"))
      
		
		DECLARE INTEGER CopyFile IN KERNEL32.DLL ;
   STRING @SourceFileName, ;
   STRING @DestFileName, ;
   INTEGER bFailIfExists
IF CopyFile(_C:autoexec.bat_,_LPT1:_,0) # 0
    =messagebox("Copiado")
ELSE
    =messagebox("No")  copiado")
ENDIF
		
		Esta función nos permite rellenar figuras; es decir, podemos establecer el color y textura de fondo de cualquier figura. A la función CreateHatchBrush() se le pasan dos parámetros el primero la textura y forma que tendrá el relleno (estos van desde 0 hasta 5), el segundo es el color de relleno. Utilizamos además otras funciones como la SelectObject() la cual selecciona y realiza las diferentes acciones sobre el objeto. La función GetDC() y Rentangle() ya fueron estudiadas.
PARA VISUAL FOX PRO 7.0
Declare integer SelectObject IN "gdi32.dll" ;
      Long hdc, Long hObject
      
      
      Declare integer GetDC in "user32.dll"  Long hWnd 
      
      Declare integer Rectangle in "gdi32.dll" ;
      Long hdc,  Long X1, Long Y1, Long X2, Long Y2
PARA VISUAL FOX PRO 6.0 Y 5.0
Declare integer GetActiveWindow in win32api
Declare integer SelectObject IN
      "gdi32.dll" ;
      Long hdc, Long hObject
      
      
      Declare integer GetDC in "user32.dll"  Long hWnd 
      
      Declare integer Rectangle in "gdi32.dll" ;
      Long hdc,  Long X1, Long Y1, Long X2, Long Y2
		Devuelve la ruta del programa ejecutable asociado a una determinada extensión
LOCAL lcRetVal,
      lcFileExt, lcFileName, lnFileHandle,;lcDirectory, lcResBuff
      STORE "" TO lcRetVal, lcFileExt, lcFileName, lcDirectory
      
      tcExt = "SCX"  && Extensión a buscar
      
      
      lcFileExt = UPPER( ALLTRIM( tcExt ))
      
      * Intenta crear un archivo con la extensión pasada
      lcFileName = "dav." + lcFileExt
      lnFileHandle = FCREATE( lcFileName )
      
      IF lnFileHandle < 1
           * No puede crear el archivo
           ERROR "No es posible crear el archivo temporal" ;
                       
      + CHR(13) + "Este es necesario para poder continuar"
           RETURN lcRetVal
      ENDIF
      FCLOSE( lnFileHandle )
      
      
      lcResBuff = SPACE(128)
      
      DECLARE INTEGER FindExecutable IN SHELL32 ;
      STRING @cFileName, ;
      STRING @cDirectory, ;
      STRING @cBuffer
      
      * llama a la función Findexecutable
      lnRetVal = FindExecutable( @lcFileName, @lcDirectory, @lcResBuff)
      
      lcMsgTxt = ""
      * Determina el valor retornado por la función
      DO CASE
             CASE lnRetVal = 0
             lcMsgTxt = "insuficientes recursos"
	CASE lnRetVal = 2
             lcMsgTxt = "Archivo especificado no se encuentra"
	CASE lnRetVal = 3
             lcMsgTxt = "Ruta especificada no se encuentra"
	CASE lnRetVal = 11
             lcMsgTxt = "Invalido formato del EXE"
	CASE lnRetVal = 31
             lcMsgTxt = "No esta asociada a ningun archivo la extensión " + lcFileExt
	OTHERWISE
            * Obtiene la ruta y exe asociado a la extensión
            lcRetVal = LEFT(lcResBuff, AT(CHR(0), lcResBuff) - 1)
      ENDCASE
      
* Borra el archivo creado
      DELETE FILE (lcFileName)
      
      IF ! EMPTY( lcMsgTxt )
            MESSAGEBOX( lcMsgTxt, 16, "Fallo la búsqueda" )
      ENDIF
      
      ? lcRetVal
      
		
		DECLARE INTEGER FindWindow IN Win32API;
STRING @lpClassName, ;
STRING @lpWindowName
 &&Debe estar abierta la
ventana Windows
lcApplicationTitle = "WINDOWS"   
lnHWnd = FindWindow(0, @lcApplicationTitle)
* si desea probar abra la
ventana del directorio  windows
IF lnHWnd <> 0
      =messagebox("si existe la ventana windows")
ELSE
      =messagebox("no existe la ventana windows")
Endif
		Devuelve el Handle (manejador o identificador único) de la ventana activa
		Devuelve la ruta del directorio actual de trabajo
DECLARE INTEGER GetCurrentDirectory IN Win32API ;
      INTEGER nSize, ;
      STRING @cBuffer
      *** Call the function
      lcSysDir = REPLICATE(CHR(0),255)
      lnBuffer = 255
      
      lnDirLen = GetCurrentDirectory( lnBuffer, @lcSysDir )
      lcRetVal = LEFT( lcSysDir, lnDirLen )
      
      ?lcRetval
		Declare integer GetDoubleClickTime in "user32" () As Long
? GetDoubleClickTime()  && Determina la velocidad al hacer dbclick
Declare integer SetDoubleClickTime in "user32";
Long wCount
=SetDoubleClickTime(817) 
&& Configura la velocidad del db click a 817 (lento)