Buenas...
Simplemente la idea se me ha ocurrido al ver el mensaje (http://foro.elhacker.net/scripting/cronometro_en_batch-t216070.0.html) de Dirpok, en el que se intenta crear un cronometro en batch....pero como a mi me gusta más vbscript, porque me parece que da más posibilidades, he creado el mio en este lenguaje ;D
El cronometro pide un nombre de usuario, sin el que no se pude comenzar, luego de eso queda a la espera de que se presione aceptar en un mensaje, una vez que se acepta, comienza el conteo :P, al terminar avisa de cuanto tiempo se ha demorado (igualmente lo va haciendo a medida que van pasando los segundos)
Al dar aceptar nuevamente termina de contar, y guarde registro de la fecha y hora actual, así como el usuario, y su tiempo en un registro (C:\ranking.txt), y abre el archivo que contiene el ranking para que pueda verse :P
A ver que les parece....
set objshell = createobject("wscript.shell")
set objfso = createobject("scripting.filesystemobject")
set ranking = objfso.opentextfile("C:\ranking.txt",8,true)
do
usuario = inputbox("Ingresa tu nombre por favor...")
if usuario <> "" then
exit do
else
msgbox "Debes de ingresar un nombre de usuario para continuar..."
end if
loop
msgbox "Presiona aceptar para comenzar el conteo..."
empieza = time()
mensaje = -1
do while mensaje = -1
tiempo = datediff("s",empieza,time())
mensaje = objshell.popup(tiempo,1,"Cronometro")
loop
ranking.writeline now() & chr(9) & usuario & chr(9) & "...." & tiempo & "seg."
ranking.close
msgbox "El tiempo insumido a sido de " & tiempo & " segundos"
objshell.run "C:\ranking.txt"
Creo que me ha quedado bastante bien :rolleyes:
Mensaje original de donde saqué la idea
Cronometro en BATCH (http://foro.elhacker.net/scripting/cronometro_en_batch-t216070.0.html)
Saludos
Jeje, te ha quedado muy bien :D
Esta muy bien, solo que el beep standard de Windows es muy molesto luego de unos segundos.
Saludos!
Es que es el efecto de los segundo que pasan :xD
Se puede reducir a un simple contador en pantalla con un code como este..
set objshell = createobject("wscript.shell")
msgbox "Presiona aceptar para comenzar el conteo..."
empieza = time()
do
tiempo = datediff("s",empieza,time())
wscript.echo tiempo
wscript.sleep 1000
loop
Con este code solo salta un mensaje en pantalla cada vez que le damos a aceptar, pero no se ve el efecto del tiempo pasando, y no se puede detener de ninguna manera :xD (solo matando el proceso), o bien, se pude lanzar desde ms-dos invocando cscript del siguiente modo
cscript nombrequeledieron.vbs
En este caso comenzara a mostrar los numeros en la consola y se detendrá hasta bien no se pulse ^C, pero claro, no creará ningún tipo de registro.
Tiene la ventaja sobre batch, que el sleep de vbs si está desde win 98 en cualquier sistema, y además, vbs te permite utilizar funciones especificas de fecha y hora para poder marcar los tiempos sin errores ;)
Saludos
Te felicito Novlucker, está muy bueno, lo que si, crítica constructiva, podría ejecutarse el txt en alguna carpeta temporal, porque en cuenta limitada, al no tener acceso a los directorios raíz, arroja error.
Por cierto, a mí no me sonó el beep, porque tengo la siguiente llave en el registro:
[HKEY_CURRENT_USER\Control Panel\Sound]
"Beep"="no"
"ExtendedSounds"="no"
CitarTe felicito Novlucker, está muy bueno, lo que si, crítica constructiva, podría ejecutarse el txt en alguna carpeta temporal, porque en cuenta limitada, al no tener acceso a los directorios raíz, arroja error.
Muchas gracias
carlitos.dll, y lo de la critica, toda critica constructiva es bienvenida, es más, yo tampoco pude ejecutarlo por el tema de los directorios raiz, y use el disco
D:\ que era de una partición con acceso total (
hice el script en el trabajo, en un momento de ocio :rolleyes:), pero puse esa ruta, para que fuera fácil de identificar, con cambiarla basta, y de querer que vaya a la carpeta temporal, basta modificar un par de líneas.....
set ranking = objfso.opentextfile("C:\ranking.txt",8,true)
Por esto......
set ranking = objfso.opentextfile(objfso.getspecialfolder(2) & "\ranking.txt",8,true)
Y... esto....
objshell.run "C:\ranking.txt"
Por esto otro.....
objshell.run objfso.getspecialfolder(2) & "\ranking.txt"
;D
Saludos