Click here to Skip to main content
13,093,097 members (65,894 online)
Click here to Skip to main content
Add your own
alternative version


8 bookmarked
Posted 25 Oct 2009

MSN Emoticons to GIF

, 2 Nov 2009
Rate this:
Please Sign up or sign in to vote.
Backup or save or convert MSN Messenger custom emoticons to GIF files


Have you ever wanted to save custom emoticons from MSN to your hard drive?

MSNEmoticonsToGif allows you to browse all your MSN Messenger custom emoticons, and save them to your hard disk for backup or any other purpose.

Using the Program

After extracting and executing the program:

  1. Enter your MSN address (Windows Live ID).
  2. Choose the folder path where you want the emoticons/pictures to be saved.
  3. Check overwrite if an emoticon with the same name already exists and you want it to be automatically overwritten.

  1. Click Find.
  2. If custom emoticons are found, a message will be displayed showing that custom emoticons were found.
  3. The first emoticon will be displayed in the picture box.

  1. Use the next and previous arrows to switch pictures.
  2. In the status bar, information about the selected emoticon/picture is displayed, its number, its size in bytes, and its width by height in pixels.

  1. Click Save all to save all the emoticons to the previously selected folder.
  2. If you would like to save only one emoticon, right click the emoticon and click Save.
  3. Choose Save as... if you would like to save the emoticon to a folder of your choice.

Using the Code

First, we add the IO library:

using System.IO;

Now, we have to find the path where the custom emoticons are stored.

By default, MSN Messenger stores all custom emoticons in the Local Settings\Application Data\Microsoft\Messenger\msn live ID\ObjectStore\CustomEmoticons folder, with a .dt2 file extension.

But since every computer can have a different Windows user account name, we need to use the following code to get the path for the Local Settings/Application data folder:

string accountPath;
accountPath = System.Environment.GetFolderPath(
                 Environment.SpecialFolder.LocalApplicationData );

Let's assume that the MSN address is, and then we add the rest of the path:

string accountName = "";
accountPath += "\\Microsoft\\Messenger\\";//"
accountPath += accountName;
accountPath += "\\ObjectStore\\CustomEmoticons";

We check if the custom emoticons folder exists; if not, it means there are no custom emoticons. Then, we will load the path of each file/emoticon and save it as a GIF file in a new folder.

//Check if folder exist
if (Directory.Exists(accountPath))
    //Load all the .dt2 files' path into an array
    string []filenames = Directory.GetFiles(accountPath, "*.dt2");

    //Save the emoticons in C:\Emoticons\
    string savePath = "C:\\Emoticons\\";//"
    savePath += accountName;

    //Check if the folder to save the emoticons/GIF Files exists
    //if not, create the folder
        if (!Directory.Exists(savePath))
    catch (IOException ex) 
        //Error Creating Folder

    //Save Files As Gif with the name 1.gif, 2.gif, 3.gif ...
    int i = 0;
    bool overwrite = true;
        foreach (string filename in filenames)
            //File.Copy(string sourceFile, string destinationFile, bool overwrite)
            File.Copy(filename, savePath + "\\e" + ++i + ".gif", overwrite);
    catch (IOException ex)
        //Error saving files
    //No custom emoticons found.


Although it might not be the fanciest program around, I wrote it so I can browse through my emoticons, backup and save the ones I like, and also use them as icons or pictures in my computer.


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Etienne Rached
Software Developer
Lebanon Lebanon
No Biography provided

You may also be interested in...

Comments and Discussions

-- There are no messages in this forum --
Permalink | Advertise | Privacy | Terms of Use | Mobile
Web01 | 2.8.170813.1 | Last Updated 2 Nov 2009
Article Copyright 2009 by Etienne Rached
Everything else Copyright © CodeProject, 1999-2017
Layout: fixed | fluid