miércoles, 25 de enero de 2012

FileTimeMod

2

FileTimeMod es una utilidad para manipular la fecha de creación, fecha modificación y fecha de acceso de los archivos.

La primera versión de este programa data de finales del 2010, pero se me quedo en un rincón del disco duro escondida y olvidada, por lo que ahora, que la he mejorado sustancialmente, aprovecho y la publico y la hago accesible para que todo el mundo pueda utilizarla. Este es el aspecto:

FileTimeMod 1.1

Se me ocurre que podría utilizarse para evitar que se sepa que abriste cierto archivo, ya que cuando ves una foto, vídeo, documento de texto o cualquier otro tipo de archivo queda guardado en él la fecha de acceso. El truco es abrir el archivo con el FileTimeMod, dejarlo abierto mientras andamos con el archivo que no queramos dejar huellas, finalmente le damos a "OK" y la fecha anterior a andar con el quedara escrita sin que se note que lo hemos modificado o visto.

DescargarSource Code

Creo que no hace falta decir que es gratis y de código abierto, y que si quieres modificarlo a tu gusto eres libre de hacerlo.

Para usarlo hay que ejecutar el programa con la ruta de un archivo como primer parámetro. yo recomiendo poner un acceso directo en la carpeta "SendTo" y asi se puede utilizar desde el menú enviar a que aparece al hacer clic con el botón secundario del ratón sobre un archivo.

Comparte o puntua esta publicación ▼

jueves, 12 de enero de 2012

Hypnotizer ScreenSaver

0

He hecho un protector de pantalla muy simple para Windows con el fin de que me sirva como "plantilla" para otros que haga en el futuro. No usa DirectX, ni OpenGL ni ninguna otra librería, solo GDI, por lo que no es muy bueno para hacer protectores de pantalla con animaciones que requieran de una buena sincronización de los fotogramas.

El protector de pantalla renderiza una espiral que da vueltas. Se puede cambiar la velocidad y sentido de giro, el grosor y el numero de "hélices". También el numero de fotogramas por segundo máxima, que puede afectar a la velocidad de giro.

El protector de pantalla "Hypnotizer ScreenSaver" ocupa muy poco, 41KB, de los cuales 27KB pertenecen al icono para que quede mas guapo. También es rápido y no necesita de mucha CPU, solo los primeros segundos necesitan de un poco mas, ya que para que no utilice apenas CPU, en la primera vuelta también guarda los fotogramas para que no tenga que volver a renderizarlos en la siguiente.

DescargarSource Code

El código fuente todavía tiene algunos fallos que no he conseguido resolver, son poco importantes pero intentare resolverlos lo antes posible.

Comparte o puntua esta publicación ▼

miércoles, 7 de diciembre de 2011

Eliminar archivos innecesarios de los proyectos

0

Hace tiempo, haciendo una copia de seguridad completa de mi carpeta de "programación" vi que ocupaba demasiado, que era hora de eliminar por ejemplo archivos ".obj" o ".o" que se generan al compilar y que solo son necesarios en ese momento. El IDE que mas archivos innecesarios genera es el Visual Studio, que por ejemplo, para un pequeño programa de unos pocos kilobytes genera una base de datos de 23 megabytes, esto es útil mientras trabajas en ese programa, pero cuando lo dejas por un tiempo largo, esos megas ocupan espacio junto con los de otros proyectos, y pueden ser borrado, ya que lo genera el automáticamente el Visual Studio cada vez que abres el proyecto.

Para Borrar estos archivos fácilmente cada cierto tiempo cree un archivo por lotes ".bat" que se encargue de esto. Con forfiles borro carpetas y con el comando del /F /S /Q borro los archivos de determinada extensión en todas las subcarpetas y sin pedir confirmación. La ultima linea sirve para ejecutar otros archivos similares a este llamados clear.bat que uso para borrar en determinados subdirectorios, por ejemplo si quiero borrar la extensión ".exe" de la carpeta "pruebas" tendré que colocar en dicha carpeta un archivo "clear.bat" con del /F /S /Q *.exe.

Ver / Descargar

forfiles /m "obj" /s /c "cmd /c rd /S /Q @path"
forfiles /m "Backup" /s /c "cmd /c rd /S /Q @path"
forfiles /m "_UpgradeReport_Files" /s /c "cmd /c rd /S /Q @path"

del /F /S /Q *.o
del /F /S /Q *.obj
del /F /S /Q *.res
del /F /S /Q *.resources
del /F /S /Q *.sdf
del /F /S /Q *.ncb
del /F /S /Q *.pch
del /F /S /Q *.ipch
del /F /S /Q *.cdf
del /F /S /Q *.idb
del /F /S /Q *.ilk
del /F /S /Q *.pdb
del /F /S /Q *.cache
del /F /S /Q *.aps
del /F /S /Q *.tlb
del /F /S /Q *.tli
del /F /S /Q *.tlh
del /F /S /Q *.tmp
del /F /S /Q *.rsp
del /F /S /Q *.pgc
del /F /S /Q *.pgd
del /F /S /Q *.meta
del /F /S /Q *.tlog
del /F /S /Q *.exp
del /F /S /Q *.rep
del /F /S /Q *.xdc
del /F /S /Q *._manifest
del /F /S /Q *.bsc
del /F /S /Q *.sbr
del /F /S /Q *.vshost.exe
del /F /S /Q *.vshost.exe.config
del /F /S /Q *.vshost.exe.manifest
del /F /S /Q UpgradeLog.XML
del /F /S /Q File_id.diz
del /F /S /Q thumbs.db
del /F /S /Q Desktop.ini
del /F /S /Q *.layout
del /F /S /Q *.depend
del /F /S /Q *.user

forfiles /m "clear.bat" /s /c "cmd /c @path"

OJO! puede ser peligroso, ya que puede eliminar archivos que no quieres que sean borrados, estate seguro que no tienes nungun archivo valioso con estas extensiones.

Si sabes de algún tipo de archivo mas o nombre de carpeta que suele ser borrada coméntalo aquí o en el código de Google Code, estaré agradecido. También si sabes como seria un equivalente para sistemas operativos tipo Unix

Comparte o puntua esta publicación ▼

viernes, 25 de noviembre de 2011

Menú desplegable usando css

4

Hoy comparto con todos este elegante menú desplegable o "drop down menu" hecho con CSS y nada de JavaScript.

Ver / Descargar

Comparte o puntua esta publicación ▼

lunes, 14 de noviembre de 2011

Dominio propio

0

Mas novedades, como dice el titulo, ya tengo un dominio propio, acabo de comprar el dominio davidXL.es también he contratado un servidor (webhostingpad) que promete no tener limites en capacidad de disco y cantidad de datos transferidos, pero esto no es del todo cierto, ya que en los términos de uso "ilimitado" limitan el numero de archivos a 10.000, y si te pasas en cuanto a transferencia te envían un email para que te pases al plan plus.

La verdad es que he contratado uno de los mas baratos, mi intención no es alojar grandes webs, sino que principalmente lo usare para hacer algunas pruebas, lo necesario para el blog y algunos proyectos pequeños. En algún futuro, posiblemente cuando finalize el contrato, si me veo apurado de recursos o capacidades me cambio, posiblemente a Bluehost, ya que me lo recomendaron y leí buenas criticas por la red.

Comparte o puntua esta publicación ▼

sábado, 22 de octubre de 2011

domingo, 2 de octubre de 2011

Trucos de divisibilidad para números enteros

1

Creo que a todos nos han enseñado alguna vez estos trucos, seguramente en primaria. A mi ya se me habían olvidado, y la verdad es que resultan útiles en algunas ocasiones.

Numero Regla
2 Si el numero es par
3 Si la suma de sus dígitos es múltiplo de 3
4 Si los últimos 2 dígitos es un numero divisible por 4
5 Si el ultimo numero es 5 o 0
6 Si el numero es par y divisible por 3
8 Si el numero es divisible por 4 y el resultado es par
9 Si la suma de sus dígitos es divisible por 9
10 Si el ultimo dígito es 0
Podréis encontrar algo mas de información en:
  • http://rocky-marciano.lacoctelera.net/post/2007/10/12/trucos-divisibilidad-numeros-enteros
  • http://es.scribd.com/doc/7049650/trucosmatematica
Comparte o puntua esta publicación ▼

martes, 13 de septiembre de 2011

Grandes cambios

0

¡Hola de nuevo! después de estar casi todo el verano sin publicar nada y en general, este ultimo año solo he publicado unos dos post al mes, muchísimo menos de lo esperado, y no es por que tenga pocas ideas o material, sino que cuando termino un programa y me dispongo a compartirlo no se me ocurre nada para escribir, me da pereza subirlo, veo que no esta del todo completo o el código no es muy claro.

Para evitar que esto no siga estando cada vez mas inactivo me he puesto manos a la obra y realizando unas serie de cambios que me permitirán publicar con mas comodidad, he borrado todo lo que tenia en el repositorio de Google Code, ya que no tenia ningún orden y lo he sincronizado con la carpeta mía del ordenador, por lo que los enlaces a códigos de ejemplo no estarán disponibles temporalmente.

Logo del repositorio

Con la nueva organización del repositorio me sera muy fácil ir publicando frecuentemente códigos nuevos, para empezar ya están disponibles todos los problemas de http://projecteuler.net/ que he conseguido resolver.

Comparte o puntua esta publicación ▼

domingo, 24 de julio de 2011

Como ocultar el cursor

0

Este pequeño código escrito en C es útil sobretodo si estas desarrollando juegos, protectores de pantalla o algún tipo de aplicación en el que desees que no se muestre la flechita del raton.

case WM_SETCURSOR:
    SetCursor(NULL);
    return TRUE;

Deberá estar junto con el resto de casos en el procedimiento de proceso de mensajes de ventana de la "winapi".

Comparte o puntua esta publicación ▼

domingo, 12 de junio de 2011

Programa que abre cierto tipo de archivo

0

Un ejemplo de como obtener el nombre, dirección del ejecutable entre otras cosas de un tipo de archivo, protocolo, clsid, etc.

#include <windows.h>
#include <Shlwapi.h>
#include <stdio.h>
#pragma comment(lib, "shlwapi.lib")

char* assocStr[] =
{
    "ASSOCSTR_COMMAND",
    "ASSOCSTR_EXECUTABLE",
    "ASSOCSTR_FRIENDLYDOCNAME",
    "ASSOCSTR_FRIENDLYAPPNAME",
    "ASSOCSTR_NOOPEN",
    "ASSOCSTR_SHELLNEWVALUE",
    "ASSOCSTR_DDECOMMAND",
    "ASSOCSTR_DDEIFEXEC",
    "ASSOCSTR_DDEAPPLICATION",
    "ASSOCSTR_DDETOPIC",
    "ASSOCSTR_INFOTIP",
    "ASSOCSTR_QUICKTIP",
    "ASSOCSTR_TILEINFO",
    "ASSOCSTR_CONTENTTYPE",
    "ASSOCSTR_DEFAULTICON",
    "ASSOCSTR_SHELLEXTENSION",
    "ASSOCSTR_DROPTARGET",
    "ASSOCSTR_DELEGATEEXECUTE",
    "ASSOCSTR_MAX"
};


int main()
{
    char buffer[256];
    DWORD bufferLen = 256;
    HRESULT hres;

    int i;
    for (i = 0; i < 20; i++)
    {
        hres = AssocQueryString(0, i, ".doc", NULL, buffer, &bufferLen);
        if (S_OK == hres)
            printf("%s\n%s\n\n", assocStr[i], buffer);
        bufferLen = 256;
    }

    return 0;
}

Comparte o puntua esta publicación ▼