اون کامپوننت کمی حجمش بالاست من همینطوری یه چیز درست کردم فکر کنم باید کار کنه میتونی بجای اون کدی که member میکنه تایمر رو فعال کنی بعد کد اصلی رو تو تایمر بذاری باید حواست باشه که بعد تایمر باید خودش رو غیر فعال کنه
[CSHARP]using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
//./////////////////////////////
using agsXMPP;
using agsXMPP.Xml.Dom;
using agsXMPP.protocol.client;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
XmppClientConnection x = new XmppClientConnection();
private void button1_Click(object sender, EventArgs e)
{
x.Server = "nimbuzz.com";
x.ConnectServer = "o.nimbuzz.com";
x.Open(txtid.Text, txtpw.Text, txtres.Text , 50);
x.AutoRoster = true;
x.OnAuthError += new XmppElementHandler(failed);
x.OnLogin += new ObjectHandler(connected);
x.OnClose += new ObjectHandler(dc);
x.OnPresence += new agsXMPP.protocol.client.PresenceHandler(room);
}
private void failed(object sender, Element e)
{
if (base.InvokeRequired)
{
base.BeginInvoke(new XmppElementHandler(failed), new object[] { sender, e });
}
else
{
txtid.BackColor = Color.Red;
txtpw.BackColor = Color.Red;
txtres.BackColor = Color.Red;
txtid.Enabled = true;
txtpw.Enabled = true;
txtres.Enabled = true;
}
}
private void connected(object sender)
{
if (base.InvokeRequired)
{
base.BeginInvoke(new ObjectHandler(connected), new object[] { sender });
}
else
{
txtid.BackColor = Color.Green;
txtpw.BackColor = Color.Green;
txtres.BackColor = Color.Green;
txtid.Enabled = false;
txtpw.Enabled = false;
txtres.Enabled = false;
}
}
private void dc(object sender)
{
if (base.InvokeRequired)
{
base.BeginInvoke(new ObjectHandler(dc), new object[] { sender });
}
else
{
txtid.BackColor = Color.Yellow;
txtpw.BackColor = Color.Yellow;
txtres.BackColor = Color.Yellow;
txtid.Enabled = true;
txtpw.Enabled = true;
txtres.Enabled = true;
}
}
private void button2_Click(object sender, EventArgs e)
{
x.Close();
}
private void room(object sender, agsXMPP.protocol.client.Presence Pres)
{
if (InvokeRequired)
{
base.BeginInvoke(new agsXMPP.protocol.client.PresenceHandler(room), new object[] { sender, Pres });
return;
}
else
{
if (Pres.Type == PresenceType.available)
{
if (checkBox1.Checked == true)// AUTO MEMBER
{
timer1.Interval = 5000;
timer1.Enabled = true;
// x.Send("<iq xmlns='jabber:client' to='" + txtroom.Text + "@conference.nimbuzz.com' type='set' id='353'><query xmlns='http://jabber.org/protocol/muc#admin'><item affiliation='member' jid='" + Pres.From.Resource + "@nimbuzz.com' /></query></iq>");
}
else
{
if (checkBox1.Checked == false)
{
MessageBox.Show("Auto Member Khamosh Shod");
}
}
}
}
}
private void button3_Click(object sender, EventArgs e)
{
try
{
x.Send("<presence to='" + txtroom.Text + "@conference.nimbuzz.com/" + txtid.Text + "' xml:lang='en'><x xmlns='http://jabber.org/protocol/muc'><password>" + txtroompw.Text + "</password></x></presence>");
}
catch { }
}
private void button4_Click(object sender, EventArgs e)
{
x.Send("<presence to='" + txtroom.Text + "@conference.nimbuzz.com/' type='unavailable'></presence>");
}
private void timer1_Tick(object sender, EventArgs e)
{
x.Send("<iq xmlns='jabber:client' to='" + txtroom.Text + "@conference.nimbuzz.com' type='set' id='353'><query xmlns='http://jabber.org/protocol/muc#admin'><item affiliation='member' jid='" + Pres.From.Resource + "@nimbuzz.com' /></query></iq>");
timer1.Enabled = false;
}
}
}
[/CSHARP]