こけめも

メモみたいなもの

Skype API (Skype4COM) その03

Skype4COMで特定のユーザーオブジェクト取得は以下のようにして可能

    // Skype接続
    axSkype1.Attach();
    // ユーザーオブジェクト取得
    SKYPE4COMLib.User User= axSkype1.get_User("ユーザー名");

実際には以下のような使い方してみました。

○リストボックスから選択したユーザーの情報を表示する

using SKYPE4COMLib;

    public partial class Form1 : Form
    {
        public Form1()
        {
            // Skype接続
            axSkype1.Attach();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //リストボックスにコンタクトリストを表示
            foreach (User oUser in axSkype1.Friends)
            {
                listBox1.Items.Add(oUser.Handle);
            }
        }

        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {    //選択されたユーザーの情報を表示
            // リストボックスで選択されたユーザー取得
            object oItem = listBox1.SelectedItem;
            if (oItem != null)
            {
                // ユーザーオブジェクト取得
                User oSelectedUser = axSkype1.get_User(oItem.ToString());
                // Skype名表示
                label1.Text = ": " + oSelectedUser.Handle;
                // Skype表示名表示(コンタクトリスト表示名)
                label2.Text = ": " + oSelectedUser.FullName;
                // オンライン状態表示
                switch (oSelectedUser.OnlineStatus)
                {
                    case TOnlineStatus.olsUnknown:
                        label3.Text = ": 不明";
                        break;
                    case TOnlineStatus.olsOffline:
                        label3.Text = ": オフライン";
                        break;
                    case TOnlineStatus.olsOnline:
                        label3.Text = ": オンライン";
                        break;
                    case TOnlineStatus.olsAway:
                        label3.Text = ": 一時退席中";
                        break;
                    case TOnlineStatus.olsNotAvailable:
                        label3.Text = ": 退席中";
                        break;
                    case TOnlineStatus.olsDoNotDisturb:
                        label3.Text = ": 取り込み中";
                        break;
                    case TOnlineStatus.olsSkypeOut:
                        label3.Text = ": SkypeOut";
                        break;
                    case TOnlineStatus.olsSkypeMe:
                        label3.Text = ": SkypeMe";
                        break;
                    default:
                        label3.Text = ": ";
                        break;
                }
            }
        }
    }