Visual Foxprogram

Encuentra una gran variedad de ejemplos prácticos que pueden ser útiles para el desarrollo de tu trabajo.

Visual Foxprogram

Podrás encontrar la herramienta necesaria para solucionar tu problema.

Visual Foxprogram

No olvides suscribirte a la página.

Visual Foxprogram

Podrás en contrar ejemplos de clases, creaciones de Menu estilo CSS,crear reportes PDF.

Visual Foxprogram

Todas las Herramientas en un solo sitio VISUAL FOXPROGRAM.

Mostrando entradas con la etiqueta VFP. Mostrar todas las entradas
Mostrando entradas con la etiqueta VFP. Mostrar todas las entradas

domingo, 16 de febrero de 2020

Cómo conocer los Datos de mi PC en VFP


Cómo conocer los Datos de mi PC en VFP .En ocasiones quisiéramos poder conocer los datos de mi PC y nos resulta un poco engorroso ya que tenemos que recurrir a ciertas aplicaciones en Windows para poder conocer esos detalles que en ocasiones requerimos para nuestros sistemas en cual estemos desarrollando. Mediante estos sencillos olecontrol podremos conseguir toda la información necesaria que necesitamos para poder obtener los datos de mi pc.

Con la utilización de estos controles podemos obtener los requerimientos necesarios de nuestro equipo, tal es el caso como se muestra en la imagen inferior. Acá puedes ver como obtenemos el nombre del Dominio, usuario y el nombre nombre del equipo respectivamente, del mismo modo nos indica el tiempo de vida de la batería de nuestro equipo , el porcentaje, la dirección IP local y el puerto remoto.

Por otra parte también nos indica los puertos existentes en nuestro equipo, las impresoras instaladas, las unidades existentes y los recursos. Todo esto y mucho más podrás conseguirlo mediante el uso de estos controles.

En el evento load de tu formulario deberás crear el objeto 'Wscript.Network' en donde podrás extraer las informaciones sobre el Dominio, el usuario y el nombre del equipo.
Del mismo modo podremos conseguir la información requerida de nuestro PC sobre los distintos puertos existentes en nuestro equipo, así como, los nombres de las impresoras instaladas en nuestra computadora.

Además de estas informaciones, este programa te permite saber el tiempo de vida y porcentaje  de la batería de tu equipo, la IP local y el puerto remoto.

En la figura podrás notar como de manera automática aparecen los datos de tu PC.



En el Evento del init de tu formulario deberás colocar el siguiente código :


PUBLIC xdominio,xusuario,xnombrepc,op,od
CLEAR
thisform.Load 
thisform.text1.value =xdominio
thisform.text2.value =xusuario
thisform.text3.value =xnombrepc
thisform.list1.RowSource ="tempo.puerto,impre"
thisform.list1.RowSourceType =6
thisform.list1.Requery 
thisform.list2.RowSource ="tempo2.unidad,recurso"
thisform.list2.RowSourceType =6
thisform.list2.Requery 
thisform.text4.Value =thisform.olecontrol1.BatteryStatus
thisform.text5.Value =thisform.olecontrol1.BatteryLifePercent
thisform.text6.Value =thisform.olecontrol2.LocalIP
thisform.text7.Value =thisform.olecontrol2.RemotePort
thisform.Refresh 

En el evento Load debes indicar las siguientes instrucciones :

Set Mouse On
Set Sticky Off
Set Bell On
Set Talk Off
Set Scor Off
Set Escape Off
Set Date To british
Set Safety Off
Set Confirm On
Set Sysmenu Off
Set Mouse On
Set Sticky Off
o = CREATEOBJECT('Wscript.Network')
xdominio=o.UserDomain
xusuario=o.UserName
xnombrepc=o.ComputerName
oP = o.EnumPrinterConnections
CREATE TABLE tempo  free(puerto c(25),impre c(25))
FOR i = 0 TO oP.COUNT-1 STEP 2
  p1=oP.ITEM(i)
  imp=oP.ITEM(i+1)
  INSERT INTO tempo(puerto,impre) values(p1,imp)
ENDFOR
CREATE TABLE tempo2 free(unidad c(25),recurso c(25))
*Unidades de Red
oD = o.EnumNetworkDrives
FOR i = 0 TO oD.COUNT-1 STEP 2
  uni=oP.ITEM(i)
  rec=oP.ITEM(i+1)
  INSERT INTO tempo2(unidad,recurso) values(uni,rec)
ENDFOR
thisform.refresh

En la parte inferior de la imagen estará el Link de Descarga del programa













VFP Evitar Programa se Ejecute dos Veces


VFP Evitar Programa se ejecute dos Veces, este tema nos da la oportunidad de evitar que este tipo de situaciones ocurran y causen errores en el sistema. Esta función nos permitirá evitar este tipo de situaciones en el futuro. Con esta sencilla instrucción EJECUTAR /N nombre de programa.EXE, estaremos evitando que el programa se cargue más de una vez.



IF NOT F_ActivaWin("Calculadora")
    * Verifica que la calculadora no este cargada:
    RUN /N NOMBREDELPROGRAMA.EXE   
ENDIF

* Esta función se encarga de evitar la duplicidad del programa
*-----------------------------
FUNCTION F_ActivaWin(cCaption)
*-----------------------------
LOCAL nHWD
DECLARE INTEGER FindWindow IN WIN32API ;
STRING cNULL, ;
STRING cWinName

DECLARE SetForegroundWindow IN WIN32API ;
INTEGER nHandle

DECLARE SetActiveWindow IN WIN32API ;
INTEGER nHandle

DECLARE ShowWindow IN WIN32API ;
INTEGER nHandle, ;
INTEGER nState

nHWD = FindWindow(0, cCaption)


Otra alternativa para evitar este problema sería crear un archivo y crear una variable el cual nos indique si esta activa o no. En la ventana del Command de VFP Creamos el nombredelarchivo con la variable ACTIVA de tipo logic y guardamos los valores. Luego en la misma ventana del command utilizamos el replace ACTIVA with .t., ahora crearemos un prg en donde ejecutaremos el siguiente código:

Ejemplo

use nombredelarchivo alias nombredelarchivo
go top
xavtiva=activa
if xactiva=.t.
   messagebox("El programa ya fué cargado.",0+64,"Aviso")
  return .f.
else
  RUN /N CALC.EXE
endif

Cuando salgas del sistema deberás colocar la variable ACTIVA en falso nuevamente para que el programa se pueda ejecutar, utilizando la instruccion replace ACTIVA with .f.

lunes, 3 de junio de 2019

Mensaje de error al estilo Messenger en VFP

Mensaje de error al estilo Messenger en VFP




En la partes de propiedades colocamos el ShowWindow en 2 (Formulario de nivel superior).

Ahora declaramos la API que vamos a utilizar y la colocamos en el evento Load del formulario tal como aparece abajo:

DECLARE integer SetWindowPos IN "user32";
  integer hwnd, integer hWndInsertAfter,; 
  integer x,integer y,integer cx,integer cy,integer wFlags

En el Init del formulario debemos publicar la variable ttop y le asignamos el valor 0


PUBLIC ttop

ttop=0
*- esto nos permitira abrir el formulario sin que nos afecte otra ventana.
=SetWindowPos(this.HWnd, -1, 0, 0, 0, 0, 1 + 2 )

En el evento Activate deberemos colocar el siguiente procedimiento, esto no permitira mover el formulario y colocarle el sonido el cual mostrara el mensaje.


*-- Ubico el formulario

tleft = (_screen.Width -this.Width)
ttlef = (tleft + this.Width)
this.Move (ttlef,ttop,this.Width,this.Height)
FOR i = 1 TO tleft  && muevo el form
  ttlef = ttlef - 1
  this.Move (ttlef,ttop,this.Width,this.Height)
  IF ttlef = tleft
    EXIT
  ENDIF 
ENDFOR

lcWaveFile =""

*-- defino la ruta del sonido a emitir 
lcWaveFile =  "sonido.wav"
DECLARE INTEGER PlaySound ;
IN WINMM.dll  ;
  STRING cWave, ;
  INTEGER nModule, ;
  INTEGER nType
PlaySound(lcWaveFile,0,1)

Una vez que hayas realizado todo esto el programa estará listo para funcionar.

En la parte inferior del Blog te estaré dejando el Link de descarga.