FoxPro/Visual FoxPro - Expertos ayuda por favor

 
Vista:

Expertos ayuda por favor

Publicado por Sara (15 intervenciones) el 07/09/2007 07:11:57
Creo amigos que esto es muy dificl, es posible modificar un archivo .bat y luego ejecutarlo

lo que necesito es poder modificar un archivo .bat desde fox por ejemplo si mi archivo .bat tiene el siguiente codigo:

Shutdown -s -f -t 10800

que seria apagar la pc en 3 horas, lo que necesito es poder desde un text cambiar el tiempo de apagado osea cambiar el 10800 por otro valor introduciendo el tiempo en un text y que al darle clic a un command modificara el archivo .bat por el valor del text y luego ejecutar el archivo .bat.

de antemano muchas gracias...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Expertos ayuda por favor

Publicado por ricardo (153 intervenciones) el 07/09/2007 07:30:33
Para modificar el .bat puedes usar las funciones fopen(), fwrite()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Expertos ayuda por favor

Publicado por Hector R. De los Santos (270 intervenciones) el 07/09/2007 13:54:49
Mmm..tambien puedes hacerlo redirigiendo la salida a un archivo, en este caso un .BAT y escribir dentro de el con @say.
Ejemplo:
Tienes un formulario para cambio de Tiempo de Apagado con un textbox, en el boton de procesar haces lo siguiente:
(Es solo un ejemplo de como hacerlo, no lo he probado, pero debe funcionar)

lName="NombreArchivo"+'.bat' &&Nombre del archivo.bat
lComando="Shutdown -s -f -t " &&Comando Fijo, Variable constante
lTiempo=thisform.textbox.value &&Valor de tiempo
SET TALK ON
SET DEVICE TO file &lName
SET PRINTER OFF
@ 0,0 say (lComando + lTiempo)
SET DEVICE TO PRINTER
SET PRINT off
SET TALK OFF

Ya con esto vas a sobrescribir sobre el archivo.bat , recueda poner SET SAFETY OFF para que no te avise cuando vaya a sobrescribir un archivo.
Para ejecutarlo solo te bastaria con Run.
C_ya
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Expertos ayuda por favor

Publicado por enrique (1041 intervenciones) el 07/09/2007 14:15:51
otra opcion sería

1. crear una tabla con un campo tiempo donde guardas el valor del tiempo faltante para apagar
2. crear un timer cuando cargas el sistema con el valor en la propiedad Interval = tiempo
3. en el evento Timer
oShell = CreateObject("Shell.Application")
oShell.ShutdownWindows

El valor del timer se calcula en milisegundos, para tu caso sería 10800000 que equivale a 60000 (1 minuto) * 180 (3 horas)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Expertos ayuda por favor

Publicado por Gabriel (427 intervenciones) el 07/09/2007 16:22:38
Amiga Sara :
Te dire que desde mi punto de vista utilizar ahora un archivo BAT no seria la unica forma de solucionar tu problema...

Tomando como ejemplo la ventana de Propiedades de Pantalla que utiliza el Windows...

Podrias crear un pequeño formulario que lo pudieras activar en cualquier parte de tu programa digamos al presionar una tecla de funcion...Ej.[F10] para indicar el tiempo que desees que tu Sistema se cierre...
Ello implicaria como dice nuestro amigo Enrique utilizar una tabla para guardar el valor inicial...y cambiar dicho valor cuando lo desees..

Yo estoy ahora buscando una forma simple de detectar la inactividad de mi Sistema...

Bueno si deseas utilizar la tecla de funcion F10 para este proposito me lo confirmas y te indico como hacer su utilizacion...

Espero haber contribuido en algo con mi sugerencia...

Saludos,

GABRIEL
(Lima-Perú)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar