Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/16: Рейтинг темы: голосов - 16, средняя оценка - 4.50
5 / 5 / 0
Регистрация: 24.11.2012
Сообщений: 42

Нажатия кнопки в webBrowser1

16.01.2013, 22:14. Показов 3101. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Суть в том,что я делаю авторизацию на сайте игры,авторизация проходит нормально,а чтобы зайти в игру нужно чтобы программа нажала кнопку "Game Start" на сайте,я пытался всеми путями но никак не получается.

Вот код кнопки на сайте:
HTML5
1
2
<div id="gamestart"><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=" 7,0,19,0""="" width="190" height="140"><param name="allowScriptAccess" value="always"><param name="movie" value="http://audition2.web.ydonline.gscdn.com//ndolfin/flash/startgame.swf"><param name="quality" value="high"><param name="wmode" value="transparent"><embed src="http://audition2.web.ydonline.gscdn.com//ndolfin/flash/startgame.swf" wmode="transparent" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="190" height="140"></object>
        </div>
Суть в том,что после авторизации на сайте,и нажатия кнопки "Вход" в Form1 то нажмется кнопка на сайте "Game Start".

Я пытался вот так сделать:

C#
1
webBrowser1.Document.GetElementById("gamestart").InvokeMember("click");
И чего то не работает этот код,просто не жмет кнопку.
Что делать? И как это исправить?
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.01.2013, 22:14
Ответы с готовыми решениями:

Нажатия кнопки в webBrowser1
Есть одна кнопка на сайте (вот ее код): &lt;td&gt;&lt;a href=&quot;#&quot; onclick=&quot;Ncucu.Login(document.forms);&quot;&gt; &lt;img...

Создайте обработчик события нажатия кнопки мыши на форме (Click), который будет устанавливать все кнопки в активный режи
Доброго времени суток! Помогите сделать задачу пожалуйста я полный ноль! (с описанием если можно:cry:) Уточните условие задания,...

При нажати левой кнопки мыши в месте нажатия отображается зеленый кружок, а при нажатии правой кнопки мыши красный квад
При нажати левой кнопки мыши в месте нажатия отображается зеленый кружок, а при нажатии правой кнопки мыши красный квадрат. При повторном...

11
145 / 145 / 35
Регистрация: 04.06.2011
Сообщений: 578
16.01.2013, 22:33
Сравните, что у меня и что у вас, поэкспериментируйте, пробуйте, в нете полно примеров как кликать по кнопкам.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
            webBrowser1.Navigate("https://login.yahoo.com/config/login?.src=fpctx&.intl=uk&.pd=c%3D6T7evjap2e6CwWSb86QVdqk-&.done=http%3A%2F%2Fuk.yahoo.com%2F");
            webBrowser1.DocumentCompleted += webBrowser1_DocumentCompleted;
            while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
            {
                Application.DoEvents();
            }
 
            foreach (HtmlElement he in webBrowser1.Document.GetElementsByTagName("button"))
            {
                if (he.GetAttribute("value").Equals("Sign In"))
                {
                    he.InvokeMember("click");
                    break;
                }
            }
2
5 / 5 / 0
Регистрация: 24.11.2012
Сообщений: 42
16.01.2013, 22:58  [ТС]
Попробую,сейчас отпишусь.

Если что то не получится напишу окау?

Дело в том что эта кнопка "Game Start" она со скриптом Java + Flash и чет код не жмет на кнопку....

Добавлено через 22 минуты
Нет.
Не получилось.

Мне нужно именно чтобы при нажатия button1 на Form1 то нажмется кнопка на сайте "Game Start".

Вот HTML код кнопки:

HTML5
1
2
<div id="gamestart"><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=" 7,0,19,0""="" width="190" height="140"><param name="allowScriptAccess" value="always"><param name="movie" value="http://audition2.web.ydonline.gscdn.com//ndolfin/flash/startgame.swf"><param name="quality" value="high"><param name="wmode" value="transparent"><embed src="http://audition2.web.ydonline.gscdn.com//ndolfin/flash/startgame.swf" wmode="transparent" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="190" height="140"></object>
        </div>
Вот код который я прописываю в программе:

C#
1
2
3
4
5
6
7
8
9
10
private void button1_Click(object sender, EventArgs e)
        {
            webBrowser1.Navigate("http://audition2.ncucu.com/");
            button1.Enabled = false;
        }
 
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            webBrowser1.Document.GetElementById("gamestart").InvokeMember("click");
        }
и просто на кнопку не жмет,было проверено что не жмет!
1
145 / 145 / 35
Регистрация: 04.06.2011
Сообщений: 578
16.01.2013, 23:03
хах я на неё так нажимаю, ни чего не происходит))
1
5 / 5 / 0
Регистрация: 24.11.2012
Сообщений: 42
16.01.2013, 23:07  [ТС]
Цитата Сообщение от Andrew_qb Посмотреть сообщение
хах я на неё так нажимаю, ни чего не происходит))
Эта кнопка зайти в игру,сначала нужно залогинится в сайте,а потом жать кнопку,так вот я залогинился в сайте,потом жму кнопку буттон опять и он должен нажать на "Game Start"

Вот полный код программы:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
namespace AuLauncher_BETA
{
    public partial class Form1 : Form
    {
        
        bool bEnteredInfo = false;
 
        public Form1()
        {
            InitializeComponent();
            button1.Visible = false;
 
 
        }
 
        private void loginBTN_Click(object sender, EventArgs e)
        {
            webBrowser1.Navigate("https://members.ncucu.com/Common/Lib/Login.aspx?url=http%3A//audition2.ncucu.com/");
            status.Text = "Подключение";
            loginBTN.Enabled = false;
            
        }
 
        private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            if (bEnteredInfo == false)
            {
                webBrowser1.Document.GetElementById("input1").SetAttribute("value", loginTXT.Text);
                webBrowser1.Document.GetElementById("input2").SetAttribute("value", passTXT.Text);
                webBrowser1.Document.GetElementById("LoginLink").InvokeMember("Click");
 
                status.Text = "Логинимся";
 
                bEnteredInfo = true;
 
            }
            
            if (bEnteredInfo == true)
            {
               button1.Visible = true;
               loginBTN.Visible = false;
               status.Text = "Нажмите играть";
            }
        
        }
        
        private void button1_Click(object sender, EventArgs e)
        {
 
            webBrowser2.Navigate("http://audition2.ncucu.com/");
            button1.Enabled = false;
        }
 
        private void webBrowser2_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            webBrowser1.Document.GetElementById("gamestart").InvokeMember("click");
        }
 
       
 
        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            Properties.Settings.Default.checkbox = checkBox1.Checked;
            Properties.Settings.Default.loginTXT2 = loginTXT.Text;
            Properties.Settings.Default.passTXT2 = passTXT.Text;
            Properties.Settings.Default.Save();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            checkBox1.Checked = Properties.Settings.Default.checkbox;
            loginTXT.Text = Properties.Settings.Default.loginTXT2;
            passTXT.Text = Properties.Settings.Default.passTXT2;
        }
 
        private void helpBTN_Click(object sender, EventArgs e)
        {
            Form2 form2 = new Form2();
            form2.ShowDialog();
        }
 
    }
}
1
145 / 145 / 35
Регистрация: 04.06.2011
Сообщений: 578
16.01.2013, 23:17
Тогда мне ни как не проверить без логина и пасса.
Посмотрите ещё раз мой пример зайдите по ссылке и просмотрите что от куда берётся.
Миниатюры
Нажатия кнопки в webBrowser1  
1
5 / 5 / 0
Регистрация: 24.11.2012
Сообщений: 42
16.01.2013, 23:23  [ТС]
Вот что у меня
Миниатюры
Нажатия кнопки в webBrowser1  
1
145 / 145 / 35
Регистрация: 04.06.2011
Сообщений: 578
16.01.2013, 23:35
Без понятия можно ли по div блоку кликать но попробуйте, если не пробывали
C#
1
2
3
4
5
6
7
8
            foreach (HtmlElement he in webBrowser1.Document.GetElementsByTagName("div"))
            {
                if (he.GetAttribute("id").Equals("gamestart"))
                {
                    he.InvokeMember("click");
                    break;
                }
            }
А так там больше не на что кликать, единственно что пришло на ум это отправлять запросы уже без webbrowser'a
1
5 / 5 / 0
Регистрация: 24.11.2012
Сообщений: 42
17.01.2013, 08:51  [ТС]
Спасибо попробую. Только уже завтра и ответ дам завтра

Добавлено через 8 часов 46 минут
Не работает,тупо не жмет!

Какой там еще вариант:
"А так там больше не на что кликать, единственно что пришло на ум это отправлять запросы уже без webbrowser'a"

Как вот так сделать? :О
1
145 / 145 / 35
Регистрация: 04.06.2011
Сообщений: 578
17.01.2013, 15:41
POST запрос, сравните заголовки и отправте.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
private void post_http(string url, string data)
        {
            CookieContainer cookies = new CookieContainer();
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
            req.Method = "POST";
            req.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
            req.CookieContainer = cookies;
            req.Headers.Add("DNT", "1");
            req.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0";
            req.Referer = "";// допишите сами
            req.ContentType = "application/x-www-form-urlencoded";
            using (var requestStream = req.GetRequestStream())
            using (var sw = new StreamWriter(requestStream))
            {
                sw.Write(data);
            }
            using (var responseStream = req.GetResponse().GetResponseStream())
            using (var sr = new StreamReader(responseStream))
            {
                var result = sr.ReadToEnd();
                using (var sw = new StreamWriter("page.html", false, Encoding.GetEncoding(1251)))
                    sw.Write(result);
            }
        }
И вызываем..
C#
1
post_http("http://2ip.ru/", "memberEmail=мыло&password=пароль&longSave=1");
Добавлено через 3 минуты
Хотя можно и через webbrowser
C#
1
2
3
4
String postData = "memberEmail=мыло&password=пароль&longSave=1";
byte[] Bytes = Encoding.UTF8.GetBytes(postData);
string AdditionalHeaders = "Content-Type: application/x-www-form-urlencoded" + Environment.NewLine;
webBrowser1.Navigate("http://2ip.ru/", "", Bytes, AdditionalHeaders);
1
 Аватар для VoltDeMar
18 / 18 / 4
Регистрация: 05.06.2012
Сообщений: 1,020
24.11.2015, 20:53
Подскажите как убрать сообщение об ошибке скрипта?
Миниатюры
Нажатия кнопки в webBrowser1  
0
145 / 145 / 35
Регистрация: 04.06.2011
Сообщений: 578
24.11.2015, 21:02
Свойство ScriptErrorsSuppressed
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.11.2015, 21:02
Помогаю со студенческими работами здесь

Эффект нажатия кнопки
Помогите сообразить как сделать эффект нажатия кнопки к которой привязана клавиша клавиатуры. В свойствах эффект нажатия(KeyDown) есть....

Инициализация нажатия кнопки
на форме есть textbox и кнопка.При нажатии на кнопку или ENTER открывается форма №2.Так вот мне надо чтобы если в первой форме в текстбокс ...

Обработчик нажатия кнопки
HI DUDE'S Столкнулся с такой проблемой:Создаю 2 формы 1)главная 2)моя.На второй форме создаю кнопку и пытаюсь сделать ее обработчик,но...

Тайминг нажатия кнопки
Может конечно не правильно назвал тему но суть проблемы в следующем. На форме есть Windows Media Player и несколько кнопок для его...

Имитация нажатия кнопки
Здравствуйте, уважаемые форумчане! Недавно для личных нужд начал изучать C#. Возник такой вопрос: Допустим есть метод...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru