
El viernes pasado estrenaron en España: Three… Extremes (Hong Kong, Japón, Corea del Sur, 2004), tres mediometrajes de terror dirigidos por tres directores bastante actuales y excéntricos (digo vanguardistas
): Takashi Miike (Japón), Park Chan-Wook (Corea del Sur) y Fruit Chan (Hong Kong) . Por aquí una reseña que he escrito en Orient Xpress.
No son exactamente blogs pero bueno, siguen dicho formato a la hora de publicar noticias y creo q son un par de sitios web bastante interesantes sobre videojuegos, así q los he añadido a la columna de la derecha:
Tactland.com - acaban de sacar la versión 1.7 de un sitio web la mar de resultón sobre ocio, cine y videojuegos y q además cuenta con una comunidad online la mar de maja
Xboxmaniac.com - sitio web volcado por completo en las potentes consolas de Microsoft: la Xbox y la nueva Xbox 360. En esta web colaboro de vez en cuando, así q quizá veáis algún articulillo mío por ahí de vez en kando
Merece la pena ver los 36 minutos del videojuego evolutivo de Will Wright (el creador de los Sims entre otros juegos), en el q podremos controlar a nuestra civilización desde q somos una ameba hasta la conquista de otros planetas :O
.
Mejor verlo en grande
Pues nada, que el Visual Basic está muy bien para programar aplicaciones sencillas rápidamente, pero aparte de eso tiene un millón de carencias como por ejemplo no pararse a esperar a que termine la ejecución de un programa invocado externamente mediante la instrucción Shell :
Shell("gzip.exe backup.sql")
Mi intención era crear un programa q hiciese un backup SQL de una base de datos Access, lo comprimiese y lo enviase vía FTP a un servidor remoto. El problema es q con Visual Basic si lo mandas comprimir y utilizas una aplicación externa como gzip lo q sucede es q no se espera a q termine la compresión y ya está tratando de subirlo por FTP. La solución pasa por hacer una llamada al API de Windows:
'Declaraciones Windows API:
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwAccess As Long, ByVal fInherit As Integer, ByVal hObject As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
—
'Espera x milisegundos y devuelve el estado de ejecución de un proceso (si se omite el argumento espera hasta que finalice el proceso):
Function WaitForProcess(taskId As Long, Optional msecs As Long = -1) As Boolean
Dim procHandle As Long
'Obtiene el handler del proceso
procHandle = OpenProcess(&H100000, True, taskId)
'Verifica el estado del proceso y se lo devuelve a nuestra función
WaitForProcess = WaitForSingleObject(procHandle, msecs) <> -1
'Cierra el handler
CloseHandle procHandle
End Function
—
Utilización:
WaitForProcess Shell("gzip.exe backup.sql")
Espero q le sea útil a alguno