MSN' e Add-In Yazalım
MSN'de Options penceresinde ADD-ins tab sekmesini görebilmeniz için Windows'un Registry sine yeni bir kayıt eklememiz gerekiyor. Aksi taktirde Add-ins tab sekmesini göremezsiniz!

Run> regedit diyelim ve Registry Editor'u açalım.
HKEY_CURRENT_USER\Software\Microsoft\MSNMessenger
altında yeni bir String Value oluşturalım ve ismine AddInFeatureEnabled ve değerine 1 diyelim.
Bu işlemden sonra Msn Messenger'ınızda Options penceresinde Add-ins tab sekmesini görebilirsiniz.
Şimdi gelelim Kendi Add-in'imize.
Visual Studio'da yeni bir class uygulaması oluşturalım ve ismine SNNMsnAddIn diyelim. Sonra bu uygulamaya Add-In yazmamızı sağlıyacak assembly'i referans olarak ekleyelim.
Project>Add Reference diyelim ver bu ekranda Browse tab sekmesine gelelim.
ProgramFiles\Windows Live\Messenger\MessengerClient.dll dosyasını seçelim.
Bu aşamadan sonra yazdığımız Class'ın MSN Add-in'i olduğunu belirmemiz için eklediğimiz assembly içerisinde bulunan IMessengerAddIn interface'inden kalıtım alması gerekiyor. Böylece bu interface içerisinden tanımlanmış methodları override ederek kendi Add-in'imiz için kullanabileceğiz.
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Messenger;
using System.Windows.Forms;
namespace SNNMsnAddIn
{
public class Eklenti : IMessengerAddIn
{
MessengerClient isyap;
public void Initialize(Microsoft.Messenger.MessengerClient messenger)
{
isyap = messenger;
//Oluşturduğumuz Add-in için gerekli bilgileri girelim.
isyap.AddInProperties.Creator = "Sinan Uçar";
isyap.AddInProperties.FriendlyName = "SNN";
isyap.AddInProperties.PersonalStatusMessage = "Bu Add-in Sinan Uçar tarafından kodlanmıştır!";
isyap.AddInProperties.Status = UserStatus.OnThePhone;
isyap.AddInProperties.Url = new Uri("http://www.zirvedekibeyinler.net");
//Add-in eventlerini oluşturalım.
isyap.IncomingTextMessage += new EventHandler<IncomingTextMessageEventArgs>(MesajGeldi);
isyap.OutgoingTextMessage += new EventHandler<OutgoingTextMessageEventArgs>(MesajGidiyor);
isyap.ShowOptionsDialog += new EventHandler(AyarlarAc);
isyap.StatusChanged += new EventHandler<StatusChangedEventArgs>(DurumDegisti);
}
void DurumDegisti(object sender, StatusChangedEventArgs e)
{
MessageBox.Show("Durum Değişti");
}
void AyarlarAc(object sender, EventArgs e)
{
//Msn'de options pencesinden Add-ins tab sekmesine geldiğiniz zaman
//kendi Add-in'inizi kullanıcı seçip Setting butonuna basarsa sizin burada yazdığınız kod
//çalıştırılacaktır. Siz dilerseniz burada projenize Windows Form ekleyip Kullanıcı Setting
//dugmesine bastığında kendi Add-in'iniz için oluşturduğunuz formu açabilirsiniz.
}
void MesajGidiyor(object sender, OutgoingTextMessageEventArgs e)
{
string mesaj, kullanici;
mesaj = e.TextMessage;
kullanici = e.UserTo.FriendlyName;
if (MessageBox.Show(mesaj + "\nBu Mesajı " + kullanici + " göndermek istediğine eminmisin?", "", MessageBoxButtons.YesNo) == DialogResult.No)
{
e.Cancel = true;
}
}
void MesajGeldi(object sender, IncomingTextMessageEventArgs e)
{
MessageBox.Show(e.UserFrom.FriendlyName + " arkadaşınızdan\n" + e.TextMessage + "\nMesajı geldi");
}
}
}
Yapmamız gereken son düzenleme Project>SNNMsnAddIn Properties diyelim ve Application kısmından Assembly Name'ine SNNMsnAddIn.Eklenti yazalım. Bunun sebebi MSN Assembly ismini bizden AssemblyAdı.ClassAdı şeklinde istiyor olması. Aksi halde Add-in i Msn'e eklerken hata mesajı alırsınız.
Şimdi Add-in imizi deneyebiliriz.MSN'iniz ile oturum açın ve Options>Add-ins tab sekmesinde Add To Messenger diyerek oluşturduğumuz SNNMsnAddIn.Eklenti.dll'i seçin.

Artık Add-in imizi aktif hale getirelim ve sonucu görelim.
Sinan UÇAR
MCP , MCAD, MCSD.NET, MCDBA