دوست عزیز ، سلام
من قبلا چنین برنامه ای واسه دوستم ساختم بدک نشده ولی 100% درست در نمیاره
برای بدست آوردن حالت باید با یه تایمر هی ( یا حی) چک کنی که با تایمر ردیف میشه .و چون از سایت ی دیگه میگیره بهتره از BGWorker استفاده کنی چون ممکنه برنامه not responding بده.
پس :
private void button1_Click(object sender, EventArgs e)
{
switch (button1.Text)
{
case "Start Checking...":
{
timer1.Enabled = true;
button1.Text = "Stop Checking...";
}
break;
case "Stop Checking...":
{
timer1.Enabled = false;
button1.Text = "Start Checking...";
}
break;
}
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
Resoult = string.Empty;
WebRequest myWebRequest = WebRequest.Create("http://www.spydetect.net/ydapi.php?yahooid=" + textBox1.Text + "&update=yes");
WebResponse myWebResponse = myWebRequest.GetResponse();
Stream ReceiveStream = myWebResponse.GetResponseStream();
Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
StreamReader readStream = new StreamReader(ReceiveStream, encode);
Resoult = readStream.ReadToEnd();
readStream.Close();
myWebResponse.Close();
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (Resoult == "1")
{
timer1.Enabled = false;
label2.Text = textBox1.Text + " is INVISIBLE!";
System.Media.SoundPlayer myPlayer = new System.Media.SoundPlayer();
myPlayer.SoundLocation = Application.StartupPath + "\\notify.wav";
myPlayer.PlayLooping();
button1.Text = "Start Checking...";
}
else
{
if (Resoult == "2")
{
timer1.Enabled = false;
label2.Text = textBox1.Text + " is ONLINE!";
System.Media.SoundPlayer myPlayer = new System.Media.SoundPlayer();
myPlayer.SoundLocation = Application.StartupPath + "\\notify.wav";
myPlayer.PlayLooping();
button1.Text = "Start Checking...";
}
else
{
if (Resoult == "0")
{
label2.Text = textBox1.Text + " is OFFLINE!";
timer1.Enabled = true;
}
else
{
if (Resoult == "3")
{
label2.Text = "ERROR";
timer1.Enabled = true;
}
else
{
label2.Text = "F**K u baw ID dorost bezan!";
timer1.Enabled = true;
}
}
}
}
}
private void timer1_Tick(object sender, EventArgs e)
{
try
{
backgroundWorker1.RunWorkerAsync();
timer1.Enabled = false;
}
catch
{
timer1.Enabled = false;
button1.Text = "Start Checking...";
}
}
یا علی.