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

Deshabilitar y habilitar el botón inicio de Windows

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Una forma muy sencilla para habilitar y
deshabilitar el botón inicio de Windows; utilizando el API de Windows.


Declare INTEGER
FindWindowEx
IN
user32.dll
;

    Long,
Long,
string,
String


Declare INTEGER EnableWindow
in
user32.dll
Long
,
Long



* Deshablitado = 0

* Hablitado = 1



nEnable = 0 


* Deshabilitado



lHwnd = FindWindowEx(0, 0,

"Shell_TrayWnd",
.NULL.)

lHwnd = FindWindowEx(lHwnd, 0,

"Button",
.NULL.)


=EnableWindow(lHwnd, nEnable)







 

 



Por: David Amador T

Sumando días a un campo DateTime

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Cuando queremos sumar días a un campo Date, lo
hacemos muy sencillo  Date() + NumeroDías; pero cuando se le suman los días
a un campo DateTime tenemos que tener cuidado por que el tomará el valor a sumar
como segundos.


Ejemplos:




* Probando con Date( )


?
Date(2006,3,13)
+ 2


* Devolverá: 2006.03.15



* Pero con un DateTime


?
DateTime(2006,3,13,
8,10,4) + 2


* Devolverá: 2006.03.13
08:10:06 AM



Una solución es la siguiente, multiplicar el
número de días a sumar por 86400 que es el número de segundos que tiene un día.



Resultado:




?
DateTime(2006,3,13,
8,10,4) + (2 * 86400)


* Devolverá: 2006.03.15
08:10:04 AM





 



Por: David Amador T

Determinar si un campo existe en una tabla

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Es de las formas más rápidas para determinar si un
campo existe en una tabla determinada.


?
"Existe ",Fsize("Campo","Tabla")
> 0



Por: David Amador T

Descargar archivo desde Internet

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Una forma muy sencilla para descargar un archivo
de Internet, utilizando la función DoFileDownload del API de Windows.


Declare DoFileDownload
In
shdocvw.Dll;

    STRING
lpszFile


cRuta = "http://www.davphantom.net/archivo.txt"



DoFileDownload(Strconv(cRuta,12))



 


Por: David Amador T

Obtener N decimales sin cambiar el Set Decimals

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Este es un ejemplo bastante común; en una variable
de tipo carácter tengo un número con 4 decimales pero deseo convertirlo a
numérico y que me muestre todos los decimales.



La solución que se nos viene a la mente es cambiar el Set Decimals y listo; pero
hay otra forma de hacerlo sin tocar esta configuración SET; Para eso
utilizaremos la nueva función CAST de VFP.


* Asumamos que el Set Decimals
está en 2


nValor =
"8.2433"

 


* Con la función VAL() me devolveria 8.24


?
VAL(nValor)



* Con la función CAST() me deolveria el valor 8.2433


?
CAST(nValor
AS
N(20,4))



 

Algo también interesante con VAL()
aproximaría el valor mientras que con CAST no.



 

nValor =

"8.2833"



* Con la función VAL() me devolveria 8.29


?
VAL(nValor)



* Con la función CAST() me deolveria el valor 8.2833


?
CAST(nValor
AS
N(20,4))


 



Por: David Amador T

Determinar el tipo de unidad de almacenamiento

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Alguna vez quise determinar si una unidad era una
memoria USB o si la unidad era un disco de red; el problema lo solucione con
esta función de API de Windows.


Declare Long
GetDriveType
In
"kernel32"
;

    STRING
nDrive



nRet = GetDriveType("H:")



Do Case

   
Case
nRet = 1

       
?
"DESCONOCIDO"

   
Case
nRet = 2

       
?
"DISCO REMOVIBLE"

   
Case
nRet = 3

       
?
"DISCO DURO"

   
Case
nRet = 4

       
?
"DISCO EN RED"

   
Case
nRet = 5

       
?
"CDROM"

   
Case
nRet = 6

       
?
"DISCO RAM"


EndCase


 


Por: David Amador T

Quitar los themas de Windows a un formulario

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Usted puede quitar las themas de Windows a un
formulario con la propiedad "Themes", pero en esta caso utilizaremos el API de
Windows para hacerlo.



Creemos un formulario y coloquemos el siguiente código en el evento LOAD del
formulario y luego ejecutémoslo


Declare Integer
SetWindowTheme
In
UxTheme ;

   

INTEGER HWnd
,
String
pszSubAppName,;

   

String
pszSubIdList


=SetWindowTheme(Thisform.HWnd,
Null,
"")




 

 


Por: David Amador T

¿Deseas reiniciar el PC?

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Esta es una forma muy sencilla de reiniciar el PC;
en este caso lo haremos al igual de como lo hacen los programas Instaladores, es
decir llamaremos a una función de la DLL setupapi.dll para que esta realice esta
operación.

Declare
SetupPromptReboot
IN
setupapi.dll
;

    Long
FileQueue,
Long
Owner,
Long
ScanOnly



Para reiniciar, preguntando si se desea
proceder



SetupPromptReboot (0,
_Screen.hWnd,
0)


Para reiniciar, sin preguntar


SetupPromptReboot (0, _Screen.hWnd,
1)


 



Por: David Amador T

Obtener la IP de otro PC dentro de la Red

Visual Fox Pro, Trucos, Funciones API Comentarios ( 0 ) »
Esta es una pregunta muy frecuente, aquí está
una posible solución para conocer la IP de un PC dentro de nuestra red.



Utilizamos el comando PING de MS-DOS (MSDOS) y enviamos el resultado a un
archivo de texto y luego de allí extractamos la IP del PC.



RUN
ping
"NOMBRE_PC"
> c:\PingIp.TXT

cTxt =
FILETOSTR([c:\PingIp.TXT])

cTxt =
SUBSTR(cTxt,AT("[",cTxt)+1)

?
LEFT(cTxt,AT("]",cTxt)
-1)


 



Por: David Amador T

Determinar si un equipo o pagina web esta ONLINE

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Vamos a utilizar el WSH para realizar un ping y
determinar si un PC o sitio web esta On Line; enviaremos un comando PING de
MS-Dos y evitaremos que se muestre la ventana negra utilizando el WSH.


Local
lOnline

oWSH =
Createobject("WScript.Shell")

lOnline = oWSH.
Run("ping
192.168.0.12"
,0,"True")



If
lOnline = 0

    Messagebox("ping
OK!"
)


Else

   
Messagebox
("ping
ERROR!"
)


EndIf



Release
oWSH


 


Por: David Amador T

Ejecutar un comando de MSDOS sin mostrar la ventana

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Esta es otra forma de ejecutar desde VFP un
comando de MSDOS sin mostrar la típica ventana negra.


En el ejemplo podemos ver una forma de registrar
un activex.




Declare Long
WinExec
In
kernel32 ;

   
STRING
lpCmdLine ,
Long
nCmdShow



cCmd = "RegSvr32.exe
micontrol.ocx"



=WinExec(cCmd, 0)



Note;0 - Se ejecuta, pero no se hace Visible)

;1 - la Ventana se muestra Normal

;2 - minimizado ;3 - Maximizado

;4 - Tamaño Normal, pero sin Foco






Por: David Amador T

Convertir tabla a Word

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Este es un truco bastante sencillo de como puedes
pasar tus tablas a Word; se los recomiendo cuando la tabla no tengo demasiados
campos.



En el ejemplo que voy a mostrar convertiré la tabla "Shippers" de Northwind
(Viene con VFP) a Word.


Set Safety Off

Open Database Home
(2) +
"northwind\northwind"



Use
Shippers
Shared

COPY TO
c:\TempDatos
TYPE CSV



oWord =
CREATEOBJECT("Word.Application")


oDoc  = oWord.Documents.Open("c:\TempDatos.CSV")

oRange = oDoc.
Range()

oRange.ConvertToTable(
",")


oWord.Visible
= .T.


Close Databases all




Usted podría adaptar este ejemplo y a través de
automatización hacerle algunas modificaciones al documento de Word.








 





Por: David Amador T

Copiar directorios

Visual Fox Pro, Trucos Comentarios ( 0 ) »
En este ejemplo copiaremos directorios utilizando
el XCOPY de MS-DOS, pero lo haremos a través de la función ShellExecute del API
de Windows para evitar que la ventana del MS-DOS sea visible.


DECLARE INTEGER
ShellExecute
IN
shell32;

   
INTEGER hwnd, STRING
lpOperation,;

   
STRING
lpFile,
STRING
lpParameters,;

   
STRING
lpDirectory,
INTEGER
nShowCmd



WAIT WINDOWS

"Copiando..."
NOWAIT


=ShellExecute(0,
"Open","XCOPY.EXE","C:\DirOrigen
c:\DirDestino /t"
,"",0)


Wait Clear


 



Por: David Amador T

Determinar si estas conectado a InterNet

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Otra forma para determinar si estas conectado a
Internet; en este caso sino se está conectado se intenta conectar.

#Define
FORCE 1


DECLARE INTEGER
InternetCheckConnection
in
wininet;

  STRING
lpszUrl, INTEGER
dwFlags,;

  INTEGER
dwReserved


  RETURN
(InternetCheckConnection(tcURL,
FORCE, 0) == 1)



Por: David Amador T

Uniendo reportes en VFP 9

Visual Fox Pro, Trucos Comentarios ( 0 ) »
El VFP 9 trajo muchas características
interesantes, está es una de las que me gusta.



Puedes unir varios reportes y mostrarlos como si fueran uno sólo.

Close
Databases All

Open Database
(Home(2)
+
"Northwind\northwind.dbc")


Use
northwind!shippers



Create Report
shippers
From
shippers


Use
northwind!Suppliers


Create Report
Suppliers
From
Suppliers



Report Form
shippers
Object Type
1
Nopageeject

Report Form
Suppliers
Object Type
1
Noreset


 



Por: David Amador T