![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Opik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
Открываю IE через ShellExecute. Все понятно. Но мне важен сам результат, как его можно получить? т.е HTML source страницы.
|
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
А зачем так извращенно?? тебе сам интернет експлорер нужен или просто код страницы??? просто отправь HTTP запрос на соответствующий сервер..он тебе и вернет HTML код страницы..
Добавлено @ 16:01
А вот и функция.. |
|||
|
||||
| Opik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
azesmcar,
Нет, мне не нужен только HTML код, мне нужно что бы именно через браузер был визит на страницу, а код нужен, что бы стянуть ссылки со страницы |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
А если так??? это не считается как визит через браузер?? Остается только получить результат Добавлено @ 16:14 Эксплорер этими же функциями пользуется...по моему без разницы |
|||
|
||||
| Opik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
azesmcar,
Нужна полная обработка JS на странице, и прочего |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Я немного не понял..если тебе нужен HTML код страницы..причем тут обработка JS?? JS же не изменяет код в HTML-е??
В любом случае если тебе нужно именно через эксплорер думаю тебе надо копать в сторону написания Plugin -ов для Explorer -а.. http://www.ishodniki.ru/art/artshow.php?ca...amp;pr=vcpp_net |
|||
|
||||
| Opik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
azesmcar,
Поясню по-другому, мне нужно: 1) Визит браузера на странице, например IE. 2) Выбрать на странице случайно одну ссылку. 3) Перейти по этой ссылке браузером. Просто получение через HTTP код страницы - не катит, не считается это за "живой" визит. |
|||
|
||||
| Dray |
|
|||
![]() Материалист ![]() ![]() Профиль Группа: Участник Сообщений: 652 Регистрация: 7.10.2003 Где: г. Всеволожск Репутация: 2 Всего: 6 |
А ты открывай браузер через ShellExecute. Сурс той же страницы получай через функцию, которую предложил
azesmcar. И снова через ShellExecute открывай страницу по нужной ссылке. |
|||
|
||||
| Opik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
Dray,
Всего лишь навсего появляется "неживой" визит и переход без сессии |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Ну это уже совсем меняет дело
|
|||
|
||||
| Opik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
azesmcar,
Да, это как вариант, но нужно именно клик мышки |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Блин..ну у вас и запросы
Добавлено @ 16:19 Хотя если тебе нужно имитировать полностью пользовательский ввод то без мышки никак...или надо найти обьект в эксплорере и отправить ему WM_LBUTTONCLICK но это не кажется реальным...link это не окно Добавлено @ 16:21 Мы помоему уже сбились с вопроса
Мне интересно, а как ты хотел сделать еслиб получил HTML код страницы? |
|||
|
||||
| Opik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
azesmcar,
ну там я бы хотя бы ссылки получил, но ты тоже на мысль натолкнул, пока думаю как лучше сделать... нужно как то определить где ссылка, навести туда мышку и кликнуть |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
А если так?
Использовать первую часть моего примера..т.е. TAB, потом получить GetFocus() т.е. HANDLE сфокусированного обьекта и отправить ему WM_LBUTTONCLICK? Только надо сперва сделать AttachThreadInput. Должно сработать.. |
|||
|
||||
| Opik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
Ща буду иска как это все делать
|
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Да вроде бы так...хотя у меня пока независимо от фокуса один и тот же хендл возвращяет |
|||
|
||||
| Opik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
Извините за банальный вопрос, но что нужно подключить, что бы заработал ShellExecute?
|
|||
|
||||
| Opik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
так, с этим сам разобрался
|
|||
|
||||
| Opik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
azesmcar,
Что ещё немаловажно, окно создается с параметрами SW_HIDE |
|||
|
||||
| Rockie |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 23.4.2006 Репутация: 8 Всего: 31 |
Opik, msdn говорит что
p.s.: сам не проверял. Добавлено @ 01:41 этот пост я уже проспал -------------------- Чтобы иметь большой гардероб - надо иметь большой гардероб. |
|||
|
||||
| Opik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
А каким образом можно получить Thread ID процесса, созданного, через ShellExecute?
|
|||
|
||||
| codelord |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 777 Регистрация: 7.5.2005 Где: ты моя темноглаза я где?! Репутация: 1 Всего: 39 |
вот посмотри надеюсь правильно понял суть вопроса.
пользуемся так:
подрубаем хедеры #include "tlhelp32.h" #include <process.h> делал Borland BCB 6.0, но та в принципе API поэтому должно работать в других средах.. Это сообщение отредактировал(а) codelord - 24.2.2007, 13:59 |
||||
|
|||||
| Opik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
codelord,
На моем примере я запускаю iexplorer.exe, а если у пользователя уже будет запущен оный? Добавлено @ 15:49 codelord, + Нужен именно Thread ID, созданного процесса.
|
|||
|
||||
| codelord |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 777 Регистрация: 7.5.2005 Где: ты моя темноглаза я где?! Репутация: 1 Всего: 39 |
если у пользователя был запущен не тобой, то код покажет пид твоего, того которая запустила твоя прога, т.е. родителский пид запущенного процесса должен быть пид твоей проги, а если запустил не ты будет 0. Это сообщение отредактировал(а) codelord - 24.2.2007, 20:09 |
|||
|
||||
| Opik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
codelord,
Насколько я понял по коду, возращается pid, a не thread id |
|||
|
||||
| codelord |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 777 Регистрация: 7.5.2005 Где: ты моя темноглаза я где?! Репутация: 1 Всего: 39 |
правильно, это я отвечал на
, а про ThreadID не очень догоняю, потому как я понимаю если ShellExecute () запустит прогу которая создаст 100 потоков, какой именно забрать? Добавлено @ 03:16 думаю смотреть надо в сторону GetWindowThreadProcessId, ищем нужное окно и забираем Id потока который его создал. |
||||
|
|||||
| codelord |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 777 Регистрация: 7.5.2005 Где: ты моя темноглаза я где?! Репутация: 1 Всего: 39 |
вот запусти IEXPLORE который ты видимо будешь запускать через ShellEx.. и посмотри в диспетчере сколько у него потоков.
который из них нужен? |
|||
|
||||
| Opik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
codelord,
А будет ли GetWindowThreadProcessId работать, если окно SW_HIDE? Ведь как такового окна не будет? |
|||
|
||||
| azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Будет..окно есть, просто его не видно..Я думаю тебе нужен поток обработки сообщений основного окна..codelord верно сказал..тебе нужна функция GetWindowThreadProcessId.. А насчет получение ID процесса..лучше используй ShellExecuteEx. Он возвращяет.. Но учти что
|
||||
|
|||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |