- Регистрация
 - 27.12.2012
 
- Сообщения
 - 1 775
 
- Благодарностей
 - 901
 
- Баллы
 - 113
 
Братцы, кто нормально шарит в c#))) Вопрос не совсем про Зеннопостер, но пусть это будет придурь автора и это я такой сниппет хочу замутить)))))
В общем простенький кликер для счетчиков лайвинтернета. Реализовать такой на пост-гет запросах не сложно, но вот решил повоевать с классом Webbrowser, и что то не получается нифига... клик, поидее есть, но пост запрос не уходит и страница не обновляется. Как бы... я робко надеялся, что делая это все через класс браузера (IE) оно будет обрабатываться без моих усилий. В принципе и Geko можно прикрутить, но думаю проблему мою не решит...
В общем...
Умные дяденьки и не дяденьки!!! Научите дурака где накосячил))))
Листинг
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
								В общем простенький кликер для счетчиков лайвинтернета. Реализовать такой на пост-гет запросах не сложно, но вот решил повоевать с классом Webbrowser, и что то не получается нифига... клик, поидее есть, но пост запрос не уходит и страница не обновляется. Как бы... я робко надеялся, что делая это все через класс браузера (IE) оно будет обрабатываться без моих усилий. В принципе и Geko можно прикрутить, но думаю проблему мою не решит...
В общем...
Умные дяденьки и не дяденьки!!! Научите дурака где накосячил))))
Листинг
			
				Код:
			
		
		
		using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.IO;
namespace счетчики_ливера
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            string path = Environment.CurrentDirectory;// берем директорию, в которой лежит фаил
            if (richTextBox1.Text == "")
            {
                MessageBox.Show("Домены запили");// если доменов нет - ругаемся
            }
            else
            {
                List<string> domen_name = new List<string>(richTextBox1.Text.Split('\n').ToList()); //инициализируем список доменов
                WebBrowser wb = new WebBrowser();//новый браузер
                wb.ScriptErrorsSuppressed = false;
                               
                for (int i = 0; i < domen_name.Count; i++) //Проверяем, что домены в правильном формате, если нет - то приводим к нему
                {
                    if (!domen_name[i].StartsWith("http://") && !domen_name[i].StartsWith("https://"))
                    {
                        domen_name[i] = "http://" + domen_name[i];
                    }
                }
                    foreach (string data in domen_name)//для каждого домена из списка....
                    {
                        wb.Navigate("http://www.liveinternet.ru/add");//идем на страничку счетчика
                        while (wb.ReadyState != WebBrowserReadyState.Complete)//грузим
                            Application.DoEvents();
                        foreach (HtmlElement he in wb.Document.GetElementsByTagName("INPUT"))//перебираем теги, и устаналиваем значения
                        {
                            if (he.GetAttribute("name") == "email")
                                he.InnerText = textBox1.Text;
                            if (he.GetAttribute("name") == "password")
                                he.InnerText = textBox2.Text;
                            if (he.GetAttribute("name") == "check")
                                he.InnerText = textBox2.Text;
                            if (he.GetAttribute("name") == "nick")
                                he.InnerText = data.Replace(".", "_");
                            if (he.GetAttribute("name") == "url")
                                he.InnerText = data;
                            if (he.GetAttribute("name") == "name")
                                he.InnerText = data.Replace(".", "_");
                        }
                        foreach (HtmlElement he in wb.Document.GetElementsByTagName("INPUT"))//ищем кнопку - Дальше, или как она там
                        {
                            if (he.GetAttribute("name") == "ok")
                            {
                               // he.ScrollIntoView(true);  //Это были эксперименты с эмуляцией... все тупо подвисало
                                //he.Focus();
                                //SendKeys.Send("{ENTER}");
                               he.InvokeMember("click"); //не работаит(((((
                               
                                while (wb.ReadyState != WebBrowserReadyState.Complete)// нету никакой движухи
                                { 
                                    MessageBox.Show("1");
                                    Application.DoEvents(); 
                                }
                                break;
                            }
                        }
                        //Ну а дальше тоже не работает))))
                        foreach (HtmlElement he in wb.Document.GetElementsByTagName("INPUT"))
                        {
                            if (he.GetAttribute("name") == "confirmed")
                            {
                                he.InvokeMember("click");
                                while (wb.ReadyState != WebBrowserReadyState.Complete)
                                {   MessageBox.Show("2");
                                    Application.DoEvents();}
                                break;
                            }
                        }
                        foreach (HtmlElement he in wb.Document.GetElementsByTagName("INPUT"))
                        {
                            if (he.GetAttribute("name") == "go")
                            {
                                he.InvokeMember("click");
                                while (wb.ReadyState != WebBrowserReadyState.Complete)
                                    Application.DoEvents();
                                break;
                            }
                        }
                        foreach (HtmlElement he in wb.Document.GetElementsByTagName("INPUT"))
                        {
                            if (he.GetAttribute("name") == "ok")
                            {
                                
                                he.InvokeMember("click");
                                while (wb.ReadyState != WebBrowserReadyState.Complete)
                                    Application.DoEvents();
                                break;
                            }
                        }
                        foreach (HtmlElement he in wb.Document.GetElementsByTagName("TEXTAREA"))
                        {
                            string code = he.InnerText;
                            File.AppendAllText(path + domen_name + ".txt", code);
                        }
                    }
                MessageBox.Show("Хозяин! Я сделал!");
            }
        }
    }
}
	



	
 Главное в тестере старом работает, значит код валидный. Ну ясно, хорошо бы починили)