- Регистрация
- 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("Хозяин! Я сделал!");
}
}
}
}