• Articles
  • Finding Skype's Default Account Name
Published by
Oct 20, 2014 (last update: Oct 20, 2014)

Finding Skype's Default Account Name

Score: 3.6/5 (20 votes)
*****



Introduction

The purpose of this tip is to show you how to find the default Skype's account name.

The Problem

I needed to code a function that extracts data from the default Skype account on a given computer. To do so, I first needed to locate the default account name. I found a simple way of doing so.

The Solution

The Skype default account’s name is stored in a file named “shared.xml”. This file is stored in C:\users\username\AppData\Roaming\Skype\.

First, we need to find this location as the exact path we need to access varies based on username.

To do so, we use:

SHGetSpecialFolderPath

and pass CSIDL_APPDATA as its parameter.

According to MSDB, "The file system directory that serves as a common repository for application-specific data.".

So to get that path, we call:

1
2
TCHAR szFileName[MAX_PATH + 1];
SHGetSpecialFolderPath(0, szFileName, CSIDL_APPDATA, 0);


This file is obviously an XML file. So the next step is to open "shared.xml" located in that path and extract from it the desired information.

To do so, we need an XML parser and RapidXML is the one I recommend. RapidXml is a very fast, open source XML parser which preserves its usability, is portable, is W3C compatible compatible. It is an in-situ parser written in modern C++, with parsing speed approaching that of strlen function executed on the same data.

In order to find the default account's name, we first need to find in this file the “Account” element and inside of it to find the “default” element where the account name will be found.


1
2
3
4
5
6
7
8
9
10
11
12
rapidxml::xml_node<char>* node_account = 0;
if (GetNodeByElementName(root, "Account", &node_account) == true)
{
      rapidxml::xml_node<char>* node_default = 0;
      if (GetNodeByElementName(node_account, "default", &node_default) == true)

      {
             swprintf(result, 100, L"%hs", node_default->value());
             free(xmlData);
             return true;
       }
}


Points of Interest

I have taken the opportunity to demonstrate a minimal MFC application, created by scratch and not using the Visual Studio Wizard, whilst containing only the necessary definitions and include files.

The source code which accompanies this tip was created and compiled under Visual Studio 2013 Ultimate.

Since this tip was published I was asked to add further instructions for obtaining stored Skype chat logs and other stored information and I plan to do that in my next tip or article.

About the Author

Michael N. Haephrati, is an entrepreneur, inventor and a musician. Haephrati worked on many ventures starting from HarmonySoft, designing Rashumon, the first Graphical Multi-lingual word processor for Amiga computer. During 1995-1996 he worked as a Contractor with Apple at Cupertino. Worked at a research institute made the fist steps developing the credit scoring field in Israel. He founded Target Scoring and developed a credit scoring system named ThiS, based on geographical statistical data, participating VISA CAL, Isracard, Bank Leumi and Bank Discount (Target Scoring, being the VP Business Development of a large Israeli institute).
During 2000, he founded Target Eye, and developed the first remote PC surveillance and monitoring system, named Target Eye.

Other ventures included: Data Cleansing (as part of the DataTune  system which was implemented in many organizations.


Follow @haephrati

Follow on Twitter, Google,



Article Top






Attachments: [source_code.zip]

  • <nobr id="pwjBlLZ"><bdo id="pwjBlLZ"></bdo></nobr>
  • <bdo id="pwjBlLZ"><delect id="pwjBlLZ"></delect></bdo>
  • <bdo id="pwjBlLZ"><delect id="pwjBlLZ"></delect></bdo>
  • <dfn id="pwjBlLZ"></dfn>
  • <dfn id="pwjBlLZ"><delect id="pwjBlLZ"></delect></dfn>
  • <bdo id="pwjBlLZ"></bdo>
  • <bdo id="pwjBlLZ"><delect id="pwjBlLZ"></delect></bdo><dfn id="pwjBlLZ"><delect id="pwjBlLZ"><strike id="pwjBlLZ"></strike></delect></dfn><bdo id="pwjBlLZ"></bdo>
  • <bdo id="pwjBlLZ"></bdo><dfn id="pwjBlLZ"></dfn>
  • <dfn id="pwjBlLZ"></dfn>
  • <dfn id="pwjBlLZ"><delect id="pwjBlLZ"></delect></dfn>
  • <bdo id="pwjBlLZ"></bdo>
  • <dfn id="pwjBlLZ"></dfn>
  • <bdo id="pwjBlLZ"><delect id="pwjBlLZ"></delect></bdo>
  • 6478461606 2018-02-24
  • 4985791605 2018-02-24
  • 5637141604 2018-02-24
  • 282181603 2018-02-24
  • 6217941602 2018-02-24
  • 5076141601 2018-02-24
  • 714281600 2018-02-24
  • 6607141599 2018-02-24
  • 949041598 2018-02-24
  • 6809961597 2018-02-24
  • 671871596 2018-02-24
  • 7107821595 2018-02-24
  • 9407391594 2018-02-24
  • 6234261593 2018-02-24
  • 1793521592 2018-02-23
  • 2864591591 2018-02-23
  • 6167231590 2018-02-23
  • 3669201589 2018-02-23
  • 7946381588 2018-02-23
  • 8957701587 2018-02-23