Con la posibilidad de insertar emoticonos personalizados en el MSN con maravillosas animaciones hay veces que nos puede interesar recuperarlos para ponerlos en otra cuenta o equipo, o bien por que vamos a formatear y queremos salvarlos.
Sacar los emoticonos estáticos es fácil, incluso podemos sacar una captura de pantalla, pero con los animados se complica un poco la cosa.
Bien pues ahora vamos a desvelar los secretos de estos emoticonos, lo que servirá para que los mas aburridos puedan crear herramientas para extraer estos iconos (yo he hecho una que esta en la pagina de aplicaciones
Lo primero que debemos saber es, entre todo el montón de archivos y carpetas, donde se almacenan los emoticonos. Pues bien la ruta donde se almacenan es un poco liosa (como todo lo que hacen).
Es algo por ejemplo tal que así.
C:\Documents and Settings\Dubas\Datos de programa\Microsoft\MSN Messenger\123456\CustomEmoticons\
(esta es una ruta de ejemplo para Windows 2000,2003,XP…)
Obtener la ruta a MSN en Datos de aplicación
-
Dim msndir As String = Environment.GetEnvironmentVariable
("APPDATA") +
"\Microsoft\MSN Messenger\"
Bien ahora viene el lío. Esto es la localización de los emoticonos personalizados de la cuenta de ID “123456” que esta en el perfil del usuario "Dubas".
Lo que quiere decir esto es que si tenemos dos cuentas, por ejemplo Ana y Pedro, si Pedro entra en la cuenta de Ana y usa el MSN con su cuenta de usuario(de Windows) no tendrá los emoticonos que tenia en su MSN cuando estaba en su cuenta de usuario (de Windows)
Bueno una vez sabemos este lío de carpetas. Yo creo que la mejor opción es programar una función que recupere todos los emoticonos de una cuenta guardando todos los archivos que estén dentro de la carpeta “CustomEmoticons”.
La carpeta “CustomEmoticons” contiene todos los emoticonos personalizados como archivos <código>.DAT cada uno de estos archivos corresponde a un emoticono, a excepción de el archivo “map.dat” que deberemos ignorar.
Y ahora seguro que viene la pregunta ¿y en que formato están?, bien los emoticonos MSN los guarda en 2 formatos PNG para los estáticos y GIF para los animados.
Para determinar el tipo de archivo hay muchas opciones. Si bien en .NET se puede cargar el archivo DAT directamente con objeto de la clase “Bitmap” y este ya reconocerá el formato.
Si deseáis solo tratar los archivos sin cargarlos como imagen, también podéis comprobar los primeros bytes del archivo.
Los archivos PNG tienen la cabecera “‰PNG” y los GIF la cabecera “GIF89” por lo que puede ser fácil reconocerlos.
Una vez echo esto la operación es sencilla, copiarlos en la carpeta que queramos poniéndoles la extensión PNG o GIF según corresponda.
Copiar un archivo.
-
// La opcion True sobreescribe si existe
-
System.
IO.
File.
Copy(origen, destino,
True);
Nota: Si queréis cargar la imagen recomiendo hacer una copia temporal y abrir la copia en lugar del original. Sobre todo en .NET donde el método de crear un bitmap pasándole la ruta del archivo modifica el original y puede hacer que no sea accesible por el MSN
Obtener un archivo temporal
-
Dim tmp As String = System.IO.Path.GetTempFileName