Cambiar fecha del sistema desde foxpro sin que salga la ventana de msdos

1,146 views
Skip to first unread message

alexana

unread,
Mar 8, 2015, 2:17:24 PM3/8/15
to publice...@googlegroups.com
Saludos a todos:

Necesito vuestra ayuda. Quiero cambiar la fecha del sistema desde mi aplicación hecha en FoxPro 9.

Utilizo los siguiente:

cFecha = "08/03/2015"

RUN DATE &cFecha

Y me la cambia, pero me sale la ventana de comandos de msdos y no quiero que salga.

Alguien puede ayudarme?. Gracias

Alex Vargas

unread,
Mar 8, 2015, 5:51:18 PM3/8/15
to publice...@googlegroups.com
Usa la API de Windows.
Puedes guardar este código en un prg e invocarlos cuando quieras cambiar fecha o fecha y hora.
Lo tome de soporte de microsoft http://support.microsoft.com/kb/188897

Yo tengo implementado algo parecido



  SET CENTURY ON

   * Save the current date and time, reset it at the end.
   m.olddate = DATE()
   m.oldtime = TIME(1)

   * Set the system time arbitrarily to 10:30:15 AM on 06/30/2001.
   m.updtdate = {06/30/2001}
   m.updttime = "10:30:15.00"
   =setsystime(m.updtdate, m.updttime)

   =MESSAGEBOX("Old date: " + DTOC(m.olddate) + CHR(13) + ;
      "Old time: " + m.oldtime + CHR(13) + ;
      "New system date: " + DTOC(DATE()) + CHR(13) + ;
      "New system time: " + TIME(1), ;
      0 + 64 + 0, ;
      "SetLocalTime()")

   * Now, reset it to its original value.
   m.updtdate = m.olddate
   m.updttime = m.oldtime
   =setsystime(m.updtdate, m.updttime)


   * Function setsystime.
   * Parameters: date, character time in the form HH:MM:SS:hh.
   * Returns: nothing.
   FUNCTION setsystime

   PARAMETERS m.updtdate, m.updttime

   DECLARE SHORT SetLocalTime IN win32api STRING SystemTime

   * Use SendMessage to tell everybody that we've changed the system time.
   DECLARE INTEGER SendMessage IN win32api ;
      INTEGER WindowHandle, ;
      INTEGER MESSAGE, ;
      STRING Param1, ;
      STRING Param2

   * SendMessage constants.
   #DEFINE HWND_BROADCAST 65535
   #DEFINE WM_TIMECHANGE 30

   m.SystemTime = word2str(YEAR(m.updtdate)) + ;
      word2str(MONTH(m.updtdate)) + ;
      word2str(DOW(m.updtdate) - 1) + ;
      word2str(DAY(m.updtdate)) + ;
      word2str(VAL(LEFT(m.updttime, 2))) + ;
      word2str(VAL(SUBSTR(m.updttime, 4, 2))) + ;
      word2str(VAL(SUBSTR(m.updttime, 7, 2))) + ;
      word2str(VAL(RIGHT(m.updttime, 2)))

   m.retval = SetLocalTime(m.SystemTime)

   * Send the message that the time has changed.
   m.retval = SendMessage(HWND_BROADCAST, WM_TIMECHANGE, "", "")

   * Function word2str.
   * Parameters: 16-bit value.
   * Returns: low-high format string for use in structures
   * requiring a WORD value.
   FUNCTION word2str

   PARAMETERS m.wordval

   PRIVATE i, m.retstr

   m.retstr = ""
   FOR i = 8 TO 0 STEP -8
      m.retstr = CHR(INT(m.wordval/(2^i))) + m.retstr
      m.wordval = MOD(m.wordval, (2^i))
   NEXT
   RETURN m.retstr


Alex A. Vargas

Euro Nava

unread,
Mar 8, 2015, 6:35:40 PM3/8/15
to publice...@googlegroups.com

 

RUN/N7 DATE &cFecha

 

 

Saludos

 

 

 

El presente correo y sus anexos son exclusivamente para el uso de los destinatarios indicados en el encabezado del mismo, pueden contener información confidencial y/o privilegiada. Si usted por error ha recibido la presente correspondencia agradezco hacer omisión de esta y hacerme del conocimiento por esta misma vía    

 

Bendito el Hombre que ha sido llamado por Cristo para ser el soldado del ejército en cuya mano empuñe como arma la palabra de Dios

Luis Maria Guayan

unread,
Mar 9, 2015, 10:57:14 AM3/9/15
to publice...@googlegroups.com
-- Leer y escribir la hora del sistema desde VFP --
http://comunidadvfp.blogspot.com/2014/09/leer-y-escribir-la-hora-del-sistema.html

Luis María Guayán
Tucumán, Argentina
_____________________________
http://comunidadvfp.blogspot.com

Jean Pierre Adonis De La Cruz Garcia

unread,
Mar 9, 2015, 12:04:16 PM3/9/15
to publice...@googlegroups.com
hay algo que se esta obviando, tener en cuenta que si la maquina esta congelada con el DeepFreeze, no podras hacer cambio de hora.

alexana

unread,
Mar 10, 2015, 1:27:09 PM3/10/15
to publice...@googlegroups.com
Gracias a todos por vuestras aportaciones. Me pongo manos a la obra.

Alex Vargas

unread,
Mar 10, 2015, 4:19:41 PM3/10/15
to publice...@googlegroups.com

Jean, el requerimiento fue puntual por ende requiere respuesta puntual.

En el proceso de desarrollo Alexana descubrirá otras necesidades las cuales planteara si requiere ayuda; No sabemos en este momento en que momento o en qué ambiente ejecutara el cambio de fecha.

Saludos

Alex A. Vargas

Alejandro Isla

unread,
Apr 3, 2015, 11:44:20 AM4/3/15
to publice...@googlegroups.com
Hola, una consulta, en Windows 7 x64 no me funciona si no lo ejecuto con permiso de administrador al programa, ni el run date xx/xx/xxxx me funciona. ¿Alguna forma de evitar eso?

Gracias

Alejandro Isla

unread,
Apr 3, 2015, 9:17:17 PM4/3/15
to publice...@googlegroups.com
Releyendo,creo que el termino no es "evitar", ya que si el SO requiere permiso de admin. no queda otra, sería si se puede elevar el privilegio (no importa si sale el cartel de aviso) algo como hacer "ejecutar como administrador" pero por código.

Saludos.
Reply all
Reply to author
Forward
0 new messages