Msn'i biraz daha zevkli hale getirmek tamamen elimizdeymiş de haberim yokmuş ;) Peltek konuşmak mı yoksa karşıdaki size ne yazdı ise sizin de ona aynı cümlenin tersten yazılmışını göndererek sinir etmek mi istersiniz. ;) Ufak çaplı bir kod...
Projenize (ClassLibrary) öncelikle C:\Program Files\MSN Messenger\MessengerClient.dll 'i (Sevgili Özcan Değirmenci'nin geliştirdiği FOX Decompiler'i ile bu dll'i bir inceleyin derim) referans olarak ekliyorsunuz. Bir de geliştirdiğiniz AddIn'i Msn Messenger'e ekleyebilmek için -AddIn ekleme bölümü kapalı geliyor - Registry'deki HKEY_CURRENT_USER\Software\Microsoft\MSNMessenger Key'ine AddInFeatureEnabled isimli DWORD Value ekleyip değerini 1 yapıyoruz.
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Messenger;
public class Peltek:IMessengerAddIn
{
MessengerClient m;
public void Initialize(MessengerClient messenger)
{
m = messenger;
m.AddInProperties.Creator = "Oğuz YAĞMUR";
m.AddInProperties.Description = "Peltek konuştuvuv";
messenger.OutgoingTextMessage += new EventHandler<OutgoingTextMessageEventArgs>(messenger_OutgoingTextMessage);
messenger.IncomingTextMessage += new EventHandler<IncomingTextMessageEventArgs>(messenger_IncomingTextMessage);
}
void messenger_IncomingTextMessage(object sender, IncomingTextMessageEventArgs e)
{
//if (m.AddInProperties.Status == UserStatus.Busy)
char [] ch = e.TextMessage.ToCharArray();
Array.Reverse(ch);
string ters = new string(ch);
//m.SendTextMessage("Sevgili " + e.UserFrom.FriendlyName + " şu anda meşgulüm. Lütfen daha sonra konuşalım ;",e.UserFrom);
m.SendTextMessage(ters,e.UserFrom);
}
void messenger_OutgoingTextMessage(object sender, OutgoingTextMessageEventArgs e)
{
//e.Cancel = true;
string text = e.TextMessage;
string yeni = "";
foreach (string kelime in text.Split(new char[] { ' ' }))
{
yeni += kelime.Replace("r", "v").Replace("s", "ss") + " ";
}
m.SendTextMessage(yeni, e.UserTo);
}
}
Bu arada neden namespace'i yok bu projenin derseniz - ki namespace'siz olur mu? hani nerde global::Peltek demeyin sakın.Demek istediğim açık seçik ortada :) - Msn'e eklemeye çalıştığımda AddIn'i Class ismi ile dosya isminin (Peltek.dll) aynı olmadığını - Sanırım Reflection kullanıo :p - söyleyip kızıyordu. Ben de Msn'in Reflection kullandığını düşünüp - ki başka ne düşündüğümü sormayın - namespace i kaldırdığımda başarılı bir şekilde eklediğini gördüm :)
Size çalışırsa ne diyeyim ben beceriksizmişim ;)