masoud Admin
Medals : Posts : 686 Emtiaz : 41318 Thanked : 95 Join date : 2013-06-09 Asl : masoud 19 iran My Mood :
| Subject: tutorial to create a mini room searcher Tue Aug 06, 2013 11:37 am | |
| - Quote :
- first add below controls to your form
// control name // 3 textbox private System.Windows.Forms.TextBox txtid; // a textbox , rename to txtid private System.Windows.Forms.TextBox txtpsw; // a textbox, rename to txtpsw private System.Windows.Forms.TextBox txtroom; // a textbox, rename to txtroom // 5 button private System.Windows.Forms.Button btnlogout;// a Button, rename to btnlogout private System.Windows.Forms.Button btnstart;//////////////////////////////////// private System.Windows.Forms.Button btnstop;///////////////////////////////// private System.Windows.Forms.Button btnclear;/////////////////////////////////////// private System.Windows.Forms.Button btnlogin;////////////////////////// // 1 listbox private System.Windows.Forms.ListBox listroom; //ListBox , rename to listroom // 1 timer private System.Windows.Forms.Timer timer1;//a timer // 1 label private System.Windows.Forms.Label lblinfo;// a label,rename to lblinfo - Quote :
- from properties change interval of timer1 to 2000(2 sec)
this.timer1.Interval = 2000; - Quote :
- in a free place of form1 class past this code
Code: - Code:
-
agsXMPP.XmppClientConnection x; int i = 0; [color] with doublclick on btnlogin past below codes into onclick events of that Code: [/color] - Code:
-
x = new agsXMPP.XmppClientConnection { Server = "nimbuzz.com", ConnectServer = "o.nimbuzz.com" }; x.Open(txtid.Text, txtpsw.Text, "www.freebuzz.ir"); x.OnLogin += new agsXMPP.ObjectHandler(OnLogin); x.OnAuthError += new agsXMPP.XmppElementHandler(OnAuthError); x.OnClose += new agsXMPP.ObjectHandler(OnClose); x.OnReadXml += new agsXMPP.XmlHandler(OnReadXml);
- Quote :
- repeat for btnlogout and past below codes
Code: - Code:
-
if (x.XmppConnectionState != agsXMPP.XmppConnectionState.Disconnected) x.Close(); - Quote :
- repeat doublclick on btnstart and past this codes
Code: - Code:
-
if (btnstart.Text == "pause") { btnstart.Text = "start"; timer1.Stop(); }else{ btnstart.Text = "pause"; timer1.Start(); } - Quote :
- repeat for btnstop and past
Code: - Code:
-
btnstart.Text = "start"; timer1.Stop(); i = 0; - Quote :
- and for btnclear
[color] Code:[/color] - Code:
-
listroom.Items.Clear(); - Quote :
- now doublclick on listroom
[color] Code:[/color] - Code:
-
try { System.Windows.Forms.Clipboard.SetText(listroom.SelectedItem.ToString().Substring(0, listroom.SelectedItem.ToString().IndexOf("@") - 0));//copy room name to clipboard } catch { } - Quote :
- for timer1 too
[color] Code:[/color] - Code:
-
try {
x.Send("<iq type='set' to='conference.nimbuzz.com'><query xmlns='jabber:iq:search'><set xmlns='http://jabber.org/protocol/rsm'><index>" + i + "</index><max>1</max></set><x type='get' xmlns='jabber:x:data'><field var='name'><value>" + txtroom.Text + "</value></field></x></query></iq>"); // index "i" max 1 with any send grab one room , u can change 1 to 10 and grabb 10 room on any recive and use of next and prive like nimbuzzsymbian in this case dont use of timer i += 1; lblinfo.Text = "Searching..."; } catch { } - Quote :
- for handel onlogin onreadxml ... we write thats codes into a free place of form1 class
[color] Code:[/color] - Code:
-
private void OnClose(object sender) { if (base.InvokeRequired) { base.BeginInvoke(new agsXMPP.ObjectHandler(OnClose), new object[] { sender }); return; } lblinfo.ForeColor = Color.Red; lblinfo.Text = "Disconnected"; } private void OnLogin(object sender) { if (base.InvokeRequired) { base.BeginInvoke(new agsXMPP.ObjectHandler(OnLogin), new object[] { sender }); return; } lblinfo.ForeColor = Color.Green; lblinfo.Text = "connected";
} private void OnAuthError(object sender, agsXMPP.Xml.Dom.Element e) { if (base.InvokeRequired) { base.BeginInvoke(new agsXMPP.XmppElementHandler(OnAuthError), new object[] { sender, e }); return; } lblinfo.ForeColor = Color.Red; lblinfo.Text = "Wrong Id or Password"; } private void OnReadXml(object sender, string xml) { if (base.InvokeRequired) { base.BeginInvoke(new agsXMPP.XmlHandler(OnReadXml), new object[] { sender, xml }); } else { string r; string t; xml = xml.Replace("\"", "'"); if (xml.IndexOf("from='conference.nimbuzz.com'") != -1) {
if (xml.IndexOf("<field var='jid' type='jid-single'><value>") != -1) {
r = xml.Substring(xml.IndexOf("<field var='jid' type='jid-single'><value>") + 42); r = r.Substring(0, r.IndexOf("</value>") - 0);//jid of conference
if (xml.IndexOf("<field var='num_users' type='text-single'><value>") != -1) {
t = xml.Substring(xml.IndexOf("<field var='num_users' type='text-single'><value>") + 49); t = t.Substring(0, t.IndexOf("</value>") - 0); // number of users listroom.Items.Add(r + " 25/" + t); } } else { lblinfo.Text="Dosetn Exist any room with this keyword" ; btnstop_Click(null, null);
} } } } - Quote :
- all our codes
[color] Code:[/color] - Code:
-
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;
namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } agsXMPP.XmppClientConnection x; int i = 0; private void OnClose(object sender) { if (base.InvokeRequired) { base.BeginInvoke(new agsXMPP.ObjectHandler(OnClose), new object[] { sender }); return; } lblinfo.ForeColor = Color.Red; lblinfo.Text = "Disconnected"; } private void OnLogin(object sender) { if (base.InvokeRequired) { base.BeginInvoke(new agsXMPP.ObjectHandler(OnLogin), new object[] { sender }); return; } lblinfo.ForeColor = Color.Green; lblinfo.Text = "connected";
} private void OnAuthError(object sender, agsXMPP.Xml.Dom.Element e) { if (base.InvokeRequired) { base.BeginInvoke(new agsXMPP.XmppElementHandler(OnAuthError), new object[] { sender, e }); return; } lblinfo.ForeColor = Color.Red; lblinfo.Text = "Wrong Id or Password"; } private void OnReadXml(object sender, string xml) { if (base.InvokeRequired) { base.BeginInvoke(new agsXMPP.XmlHandler(OnReadXml), new object[] { sender, xml }); } else { string r; string t; xml = xml.Replace("\"", "'"); if (xml.IndexOf("from='conference.nimbuzz.com'") != -1) {
if (xml.IndexOf("<field var='jid' type='jid-single'><value>") != -1) {
r = xml.Substring(xml.IndexOf("<field var='jid' type='jid-single'><value>") + 42); r = r.Substring(0, r.IndexOf("</value>") - 0);//jid of conference
if (xml.IndexOf("<field var='num_users' type='text-single'><value>") != -1) {
t = xml.Substring(xml.IndexOf("<field var='num_users' type='text-single'><value>") + 49); t = t.Substring(0, t.IndexOf("</value>") - 0); // number of users listroom.Items.Add(r + " 25/" + t); } } else { lblinfo.Text="Dosetn Exist any room with this keyword" ; btnstop_Click(null, null);
} } } }
private void timer1_Tick(object sender, EventArgs e) { try {
x.Send("<iq type='set' to='conference.nimbuzz.com'><query xmlns='jabber:iq:search'><set xmlns='http://jabber.org/protocol/rsm'><index>" + i + "</index><max>1</max></set><x type='get' xmlns='jabber:x:data'><field var='name'><value>" + txtroom.Text + "</value></field></x></query></iq>"); i += 1; lblinfo.Text = "Searching..."; } catch { } }
private void listroom_SelectedIndexChanged(object sender, EventArgs e) { try { System.Windows.Forms.Clipboard.SetText(listroom.SelectedItem.ToString().Substring(0, listroom.SelectedItem.ToString().IndexOf("@") - 0));//copy room name to clipboard } catch { } }
private void btnlogin_Click(object sender, EventArgs e) { x = new agsXMPP.XmppClientConnection { Server = "nimbuzz.com", ConnectServer = "o.nimbuzz.com" }; x.Open(txtid.Text, txtpsw.Text, "www.freebuzz.ir"); x.OnLogin += new agsXMPP.ObjectHandler(OnLogin); x.OnAuthError += new agsXMPP.XmppElementHandler(OnAuthError); x.OnClose += new agsXMPP.ObjectHandler(OnClose); x.OnReadXml += new agsXMPP.XmlHandler(OnReadXml); }
private void btnlogout_Click(object sender, EventArgs e) { if (x.XmppConnectionState != agsXMPP.XmppConnectionState.Disconnected) x.Close(); }
private void btnstart_Click(object sender, EventArgs e) { if (btnstart.Text == "pause") { btnstart.Text = "start"; timer1.Stop(); }else{ btnstart.Text = "pause"; timer1.Start(); } }
private void btnstop_Click(object sender, EventArgs e) { btnstart.Text = "start"; timer1.Stop(); i = 0; }
private void btnclear_Click(object sender, EventArgs e) { listroom.Items.Clear(); }
} } - Quote :
- this is our soft result
[color] [/color] |
|
atheet98 new member
Posts : 1 Emtiaz : 39151 Thanked : 0 Join date : 2013-08-20
| Subject: Re: tutorial to create a mini room searcher Tue Aug 20, 2013 11:25 pm | |
| |
|