elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Cronometro en VBS :p
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Cronometro en VBS :p  (Leído 7,777 veces)
Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Cronometro en VBS :p
« en: 27 Junio 2008, 22:42 pm »

Buenas...

Simplemente la idea se me ha ocurrido al ver el mensaje 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....

Código
  1. set objshell = createobject("wscript.shell")
  2. set objfso = createobject("scripting.filesystemobject")
  3. set ranking = objfso.opentextfile("C:\ranking.txt",8,true)
  4. do
  5. usuario = inputbox("Ingresa tu nombre por favor...")
  6. if usuario <> "" then
  7. exit do
  8. else
  9. msgbox "Debes de ingresar un nombre de usuario para continuar..."
  10. end if
  11. loop
  12. msgbox "Presiona aceptar para comenzar el conteo..."
  13. empieza = time()
  14. mensaje = -1
  15. do while mensaje = -1
  16. tiempo = datediff("s",empieza,time())
  17. mensaje =  objshell.popup(tiempo,1,"Cronometro")
  18. loop
  19.  
  20. ranking.writeline now() & chr(9) & usuario & chr(9) & "...." & tiempo & "seg."
  21. ranking.close
  22.  
  23. msgbox "El tiempo insumido a sido de " & tiempo & " segundos"
  24. objshell.run "C:\ranking.txt"

Creo que me ha quedado bastante bien  :rolleyes:

Mensaje original de donde saqué la idea

Cronometro en BATCH

Saludos


« Última modificación: 27 Junio 2008, 22:45 pm por Novlucker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Cronometro en VBS :p
« Respuesta #1 en: 27 Junio 2008, 23:10 pm »

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!


En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Cronometro en VBS :p
« Respuesta #2 en: 28 Junio 2008, 01:21 am »

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..

Código
  1. set objshell = createobject("wscript.shell")
  2. msgbox "Presiona aceptar para comenzar el conteo..."
  3. empieza = time()
  4. do
  5. tiempo = datediff("s",empieza,time())
  6. wscript.echo tiempo
  7. wscript.sleep 1000
  8. 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

Código:
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
« Última modificación: 28 Junio 2008, 01:27 am por Novlucker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
carlitos.dll

Desconectado Desconectado

Mensajes: 266



Ver Perfil
Re: Cronometro en VBS :p
« Respuesta #3 en: 28 Junio 2008, 01:50 am »

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"
En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Cronometro en VBS :p
« Respuesta #4 en: 28 Junio 2008, 02:05 am »

Citar
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.

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.....

Código
  1. set ranking = objfso.opentextfile("C:\ranking.txt",8,true)
Por esto......
Código
  1. set ranking = objfso.opentextfile(objfso.getspecialfolder(2) & "\ranking.txt",8,true)
Y... esto....
Código
  1. objshell.run "C:\ranking.txt"
Por esto otro.....
Código
  1. objshell.run objfso.getspecialfolder(2) & "\ranking.txt"

 ;D

Saludos


« Última modificación: 28 Junio 2008, 02:08 am por Novlucker » En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Cronometro en BATCH « 1 2 3 »
Scripting
Dirpok 22 20,187 Último mensaje 28 Enero 2013, 17:16 pm
por Eleкtro
Cronometro regresivo « 1 2 »
.NET (C#, VB.NET, ASP)
SγиtαxEяяoя 19 15,072 Último mensaje 26 Mayo 2013, 01:09 am
por SγиtαxEяяoя
[SOURCE] CronoX (Un cronómetro)
.NET (C#, VB.NET, ASP)
Eleкtro 0 1,630 Último mensaje 14 Julio 2013, 16:52 pm
por Eleкtro
Iniciar, Pausar, Reiniciar un cronometro en c++
Programación C/C++
Avijobat 1 3,066 Último mensaje 14 Marzo 2015, 11:32 am
por ivancea96
ayuda para un programa de cronometro
Programación C/C++
febo50 1 1,699 Último mensaje 31 Mayo 2017, 15:20 pm
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines