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

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

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.02.2014, 16:13   #1
Fordros
Пользователь
 
Регистрация: 26.06.2012
Сообщений: 89
По умолчанию WinAPI модального окна в IE

Доброго времени суток, уважаемые!
Сразу к делу... Пробую парсить через IE внутреннюю страничку банка, которая доступна только локально. Все нормально до того момента пока не доходит дело до модальных окон вызываемых javascript'ом. Дошло до того что решил попробовать поработать с ними через ВинАПИ, но так как знаний в VBA оказалось маловато, прошу о помощи!!!
использую следующий код:
Код:
Sub NO()
Dim HvndWin, HvndBut As Long
HvndWin = FindWindowEx(0, 0, vbNullString, "Неснижаемый остаток -- Диалоговое окно веб-страницы") 'находит нормально
HvndBut = FindWindowEx(HvndWin, 0, vbNullString, "Изменить") ' не находит кнопку
PostMessage HvndWin, &HF5, 0&, 0&
End Sub
Дело в том что даже через прогу Spyxx не находит хендл ни кнопок ни текстбокса... А мне нужно как-то заменить текст в текст боксе и нажать на кнопку "Изменить".
Что подскажите делать???
Изображения
Тип файла: jpg s.jpg (27.6 Кб, 139 просмотров)

Последний раз редактировалось Fordros; 05.02.2014 в 16:17.
Fordros вне форума Ответить с цитированием
Старый 05.02.2014, 17:46   #2
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

скорей всего это не диалоговое окно, вызываемое js, а новая страница с загруженным html кодом. нужно получить текст этой странички и там есть свойство, не помню точно GetElementByID, что то вроде этого

Последний раз редактировалось maksim_serg; 05.02.2014 в 19:54.
maksim_serg вне форума Ответить с цитированием
Старый 05.02.2014, 18:36   #3
alex77755
Форумчанин
 
Аватар для alex77755
 
Регистрация: 14.02.2009
Сообщений: 753
По умолчанию

Попробуй по какому-нибудь элементу ПКМ
Будет ли в меню что-то типа "Исследовать элемент" (Мозила) или "проинспектрировать элемент (опера) Или просто HTML код или исходный код
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru
alex77755 вне форума Ответить с цитированием
Старый 05.02.2014, 20:28   #4
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

например, в яндексе, кнопку "НАЙТИ" можно нажать так:

Код:
    Dim objIE As Object
    Dim IEDoc As Object
    
    Set objIE = CreateObject("InternetExplorer.Application")
    objIE.Visible = True
    objIE.navigate "http:\\www.yandex.ru"
    While objIE.Busy
    DoEvents
    Wend
    Set IEDoc = objIE.document
    IEDoc.getelementbyid("text").Value = "VBA. Работа с IExplorer"
    For Each element In IEDoc.all
        If element.getattribute("value") = "Найти" Then
           element.Click
        End If
    Next
maksim_serg вне форума Ответить с цитированием
Старый 06.02.2014, 13:40   #5
Fordros
Пользователь
 
Регистрация: 26.06.2012
Сообщений: 89
По умолчанию

Всем спасибо за участие, но могу с увереностью сказать что вызывается окошко jscript'ом. Это модальное окно не реагирует на нажатия ПКМ и просмотреть как либо ХТМЛ код я не могу.
Ниже приведен код ответа на запрос (при нажатии на кнопку которая вызывает данное окошко). Может можно как-то отработать в обход?
Нашел в нете похожую ситуацию с каким-то решением, но только я многого не понимаю там. Может кто-то посмотрит ЗДЕСЬ и подскажет есть ли решение?
З.Ы. прошу прощения за внешнюю ссылку

PHP код:
<HTML><HEAD><META http-equiv="content-type" content="text/html; charset=windows-1251"><META http-equiv="pragma" content="no-cache"><META http-equiv="cache-control" content="no-store"><META http-equiv="expires" content="Wed, 26 Feb 1997 08:00:00 GMT"><LINK href="/include/styles.css" rel="stylesheet" type="text/css"><TITLE>Неснижаемый остаток</TITLE><SCRIPT language="javascript" src="/jscript/jquery.js"></SCRIPT></HEAD><BODY style="margin:10px 5px 5px 5px"><script language="javascript" src="/jscript/jquery.js"></script><script language="JavaScript" src="/jscript/string.js"></script><script language="JavaScript" src="/jscript/check_form.js"></script><script language="JavaScript" src="/jscript/function.js"></script><FORM name="MainForm" target="windowModal" method="post"><INPUT type="hidden" name="s" value=""><INPUT type="hidden" name="fhMode"><div style='border:1px #E8A13B solid; background-color:#FDFDF1; width:200; padding:3px; font-size:12px; margin-bottom:10px; '>Карта № <font class='header'>4476070200068534</font></div><table><tr><td class="bt" noWrap>Неснижаемый остаток</td><td class="bi"><input type="text" id="ftSafeDeposite" value="0.00" size="10" maxlength="10"></td></tr></table><button class="button_main" onclick="clickOk()" style="width:80; margin-top:15px">Изменить</button>&nbsp;&nbsp;<button class="button" onclick="window.close()" style="width:90; margin-top:15px">Закрыть окно</button></FORM><SCRIPT language="javascript">
        
window.name = 'windowModal';

function clickOk() 
{
    d.MainForm.ftSafeDeposite.mandatory     = "N";
    d.MainForm.ftSafeDeposite.description    = "Неснижаемый остаток";
    
    if (Check_form(d.MainForm))
    {
        var rValue = {};
        rValue.safe_deposite = $('#ftSafeDeposite').val();
    
        window.returnValue = rValue;
        window.close();
    
        return false;
    }
}
</SCRIPT>

      </TD>
    </TR>
    </TABLE>
      </BODY>
</HTML> 

Последний раз редактировалось Fordros; 06.02.2014 в 13:50.
Fordros вне форума Ответить с цитированием
Старый 06.02.2014, 14:47   #6
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

попробуйте в создать Set objIE = CreateObject("InternetExplorer.Appl ication"), в нем открыть это окошко, например кликнув по кнопке с функцией создания этого окна element.Click, получить страничку Set IEDoc = objIE.document, а дальше нажать на кнопку изменить element.Click
maksim_serg вне форума Ответить с цитированием
Старый 06.02.2014, 15:03   #7
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

maksim_serg,там не все так просто в их банковской системе.
Ростислав,пока не будет доступа через тимвивер( а это исключено),я например помочь не смогу.
Цитата:
и просмотреть как либо ХТМЛ код я не могу.
Его всегда можно прочитать,надо знать где и как.
А ,что по этому вопросу говорит товарищ Fiddler
Анализ,обработка данных Недорого

Последний раз редактировалось doober; 06.02.2014 в 15:06.
doober вне форума Ответить с цитированием
Старый 06.02.2014, 17:25   #8
Fordros
Пользователь
 
Регистрация: 26.06.2012
Сообщений: 89
По умолчанию

Цитата:
Сообщение от doober Посмотреть сообщение
maksim_serg,там не все так просто в их банковской системе.
Ростислав,пока не будет доступа через тимвивер( а это исключено),я например помочь не смогу.Его всегда можно прочитать,надо знать где и как.
А ,что по этому вопросу говорит товарищ Fiddler
Ну про ХТМЛ я писал исходя из вопроса (ПКМ на окошке).
Fiddler показывает как отдельную страничку и если я открою это окно как вкладку, изменю необходимые данные и нажму на необходимую кнопку, то браузер мне выдает "Просматриваемая веб-страница пытается закрыть этувкладку. Хотите закрыть?". И если соглашаюсь то вкладка закрывается, но изменения не сохраняются...
Вложения
Тип файла: rar NO.rar (12.4 Кб, 9 просмотров)
Fordros вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Периодический показ модального окна поверх основного окна приложения Curvelaker Windows Forms 0 01.05.2013 15:24
Передать настройки с модального окна в popupmenu uralgsm Общие вопросы Delphi 7 27.01.2013 17:57
Закрытие модального окна по таймеру Olegzxc JavaScript, Ajax 3 31.07.2012 09:36
Проблема при изменении модального окна на немодальное GrinderSam Win Api 1 03.12.2011 14:33
Мерцание модального окна при щелчке на родительское Vadik(R) Общие вопросы Delphi 11 14.10.2009 19:37