Mostrando entradas con la etiqueta utilitario. Mostrar todas las entradas
Mostrando entradas con la etiqueta utilitario. Mostrar todas las entradas

lunes, 20 de junio de 2016

UPoPS–Utilitario para modificar Prince of Persia para pantallas anchas


image

La semana pasada Ubisoft nos obsequió su famoso juego Prince of Persia – The Sands of Time, que se lanzó el 2003, sin embargo muchos de ustedes habrán notado que el juego no se adapta correctamente a pantallas 16:9 (anchas o widescreen), y esto no ha sido corregido por Ubisoft de manera oficial, pero existen modificaciones al archivo binario que permiten modificar la resolución del juego.

sábado, 7 de diciembre de 2013

Transparent Sublime Text 3 at least on Windows


There are sometimes when you like to read content behind your code editor, specially snippets, documentation of APIs or other important stuff that sometimes requires you to switch between your code editor and that documentation (webpage, pdf, etc.).

st3opacity

And that is why it is sometimes useful to have a translucent code editor, and if you love using SublimeText3 editor, you might know that it doesn’t allow you to set its opacity level, so you might end up hitting Alt-Tab hotkeys or adjusting both windows  side by side in order to copy or read a documentation without hassle.

Anyhow, having a little knowledge about Windows APIs gave me the idea to change the application’s alpha opacity level, and since most applications running on Windows let us do it, it is only matter of coding now.

viernes, 19 de julio de 2013

Animando el fondo de reproducción de Youtube con HTML5


Hace bastante tiempo hice una extensión para Google Chrome con la finalidad de poder ocultar el fondo mientras reproducía el vídeo de Youtube, sin embargo alguien más se apoderó de mi código fuente para su extensión pésima en ese entonces pero que invirtió en publicidad; y francamente me quitó las ganas de continuar con el proyecto Focus on video y lo dejé abandonado (supongo que ya ni funciona).

Ahora me encontré con una excelente extensión para reproducir vídeos de Youtube utilizando HTML5, y se me ocurrió agregarle un efecto como fondo de tal forma que en lugar de oscurecer u ocultar el fondo como lo hacía en Focus on video, y ahora se mostraría con una imagen del mismo vídeo en forma desenfocada, dándole un efecto que en lo personal me agrada.

lamrim[3]

Como pueden ver, el fondo adopta la misma imagen de la del vídeo pero desenfocada para no distraer y darle un efecto de reflejo utilizando el color original.

domingo, 15 de mayo de 2011

+ y - para MSPaint - Reemplazando por otras teclas


Hace instantes surgió un problema en un Laptop, y es que como no tienen el teclado numérico (+ y -) y a pesar de probar con la tecla Fn, tampoco se lograba agrandar el tamaño del borrador de Paint.


Por lo tanto me propuse escribir un pequeño programita que permita reemplazar dichas teclas.


Averiguando me encontré con algunas funciones de la API de Windows.


  • GetAsyncKeyState

  • FindWindow

  • GetForegroundWindow, y

  • keybd_event

Con GetAsyncKeyState podemos obtener el estado del teclado, devuelve un valor de 2bytes, y si el bit más significativo está en alta, significa que está presionado.


Por tanto realicé la siguiente función en Delphi:



GetAsyncKeyState(Ord(Edit2.text[1]))and $8000)=$8000



Lo que hace es comparar el bit mencionado de la tecla que hemos asignado en el campo de texto Edit2.


Este es el diseño inicial.


FindWindow GetForegroundWindow nos servirán para : encontrar una aplicación en ejecución (MSPaint) y la ventana que tiene el foco de atención.



(FindWindow(‘MSPaintApp’,nil)=GetForegroundWindow)



Aquí lo que hacemos es comparar si la ventana de MSPaint encontrada es igual a la actual en uso.


Finalmente utilizamos keybd_event para enviar teclados



Sleep(5);
keybd_event(VK_ADD,MapVirtualKey(VK_ADD,0),0,0);


Sleep(5);    keybd_event(VK_ADD,MapVirtualKey(VK_ADD,0),KEYEVENTF_KEYUP,0);



Con ello ya hemos enviado la tecla + (VK_ADD) y para la tecla - utilizamos VK_SUBTRACT
Al final todo ello se realiza dentro de un objeto TTimer el cual se encargará de verificar en cierto intervalo de tiempo (en mi caso 100)
Finalmente aquí tiene el programa para que puedan probarlo ustedes mismos.