Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.07.2012, 14:54   #1
cat2899
 
Регистрация: 23.09.2011
Сообщений: 5
Радость Как в WebBrowser1 программно нажать на кнопку без ID и тому подобному? Решено!



Надо в WebBrowser1 програмно нажать на кнопку, HTML код которой:

<button class="button red" type="button" onclick="Attack.showAttackAlert(100 43720);">
<center>Атаковать</center>
</button>

Как это сделать?
С помощью WebBrowser1.OleObject.Documen t.getelementsbytagname ?
Или как лучше? Тут вроде как скрипт.. не пойму..((

Было бы ещё лучше узнать, возможно ли использовать в данном случае idHTTP

Последний раз редактировалось cat2899; 08.07.2012 в 05:40.
cat2899 вне форума Ответить с цитированием
Старый 07.07.2012, 14:57   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

я бы взял сниффер и посмотрел, к чему приводит нажатие. В 90% случаев, браузер отправляет запрос на сервер. Вот его и на до выуживать. А потом выуживать, откуда генерируются magic-numbers в таких запросах. TWebBrowser это даже смешно. Особенно если многопоточно и с Indy.
Человек_Борща вне форума Ответить с цитированием
Старый 07.07.2012, 16:20   #3
cat2899
 
Регистрация: 23.09.2011
Сообщений: 5
По умолчанию

Ответ дан ниже!:

Последний раз редактировалось cat2899; 08.07.2012 в 05:37.
cat2899 вне форума Ответить с цитированием
Старый 08.07.2012, 05:26   #4
cat2899
 
Регистрация: 23.09.2011
Сообщений: 5
Радость Вопрос решился очень просто!

Как всё это делается!
1)С помощью сниффера, например мне очень нравится HTTP Analyzer V6 (запускаем его). Скачать можно этим торрентом на этом сайте. Как установили и запустили - жмем в программе, наверху слева - "Play".
Только прежде чем это нажимать - вырубите все-все программы, кроме браузера! В браузере должна быть запущенна только игра!

2)Теперь нажимаем на необходимую кнопку в игре (в браузере).

3)Теперь заглядываем в сниффер и смотрим - что там за URL напротив POST (POST должен быть по серединке в списке, а URL справа от него! Запоминаем URL! Это туда идет запрос)

4)Ниже в сниффере есть разные вкладки. Выбираем вкладку PostData

5)Теперь перед вами ещё чуть ниже - список информации, отправляемой на адрес URL. Слева Параметр(ParameterName), справа - его значение (Value)!
Тоже ЗАПОМИНАЕМ!



6) Итак! Отправляем POST запрос на сервер! Вся информация у нас есть.. и её надо будет уметь отправлять через WebBrowser1, для этого вставляем эту процедуру - куда душе угодно =) Желательно в самом верху.

procedure PostWithWebBrowser(PostString: string; URL: OleVariant);
var
Data: Pointer;
PostData: OleVariant;
Flags, TargetFrame, Headers: OleVariant;
begin
PostData := VarArrayCreate([0, Length(PostString) - 1], varByte);
Data := VarArrayLock(PostData);
try
Move(PostString[1], Data^, Length(PostString));
finally
VarArrayUnlock(PostData);
end;
Flags := EmptyParam;
TargetFrame := EmptyParam;
Headers := 'Content-Type: application/x-www-form-urlencoded' + #10#13; //или так же EmptyParam; (если не получится)
// Headers :=Content-Type: applicati.... и т.д. это значение вы можете найти тоже в сниффере. Оно прописано сразу же под вкладкой PostData (первая строчка)
Form1.WebBrowser1.Navigate2(URL, Flags, TargetFrame, PostData, Headers);
end;

7) И теперь, чтобы отправить этот запрос - всего-то:

procedure TForm1.Button1Click(Sender: TObject);
begin
PostWithWebBrowser('ParametrName=Value&ParametrName=Value','URL');
end;

Не забываем, что прежде чем отправлять на сервер какой-то запрос - вы должны быть зарегистрированны!!! (имеется ввиду для онлайн игр! сервер должен знать, что вы вошли)

Прошу любить и жаловать)) Алексей Верхогляд. vk.com/id446756

Последний раз редактировалось cat2899; 08.07.2012 в 06:15.
cat2899 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
програмно загруз веб страницу вставить текст и програмно нажать кнопку. asdn Общие вопросы .NET 0 05.10.2010 13:40
Как нажать на кнопку в программе. arach Win Api 6 07.09.2010 19:50
Как нажать кнопку в TWebBrowser duhduhduh Компоненты Delphi 0 03.05.2010 13:49
Как нажать на кнопку зная ее class? pain_kill Работа с сетью в Delphi 1 26.12.2009 17:51
Как нажать кнопку другого приложения? TwiX Общие вопросы Delphi 2 29.07.2009 19:08