Здравствуйте, vovanblk, Вы писали:
V>Нужно чтобы кнопка на станице нажалась сама в определённое время. Как до неё добраться из Visual C. и сымитировать нажатие? Мне кажется это связано с IDispatch, но у меня не получается получить доступ к кнопке. К IE добрался, а к кнопке не могу.
1. У кнопки должен быть провисан атрибут ID
<INPUT TYPE="Button" ID="Btn1" VALUE="Click me" onclick="window.alert(this.id + 'has been clicked')">
2. Если добрался до IE, значит есть IHTMLWindow2
Отсюда такой код:
CComPtr<IHTMLWindow2> pWindow2 = /* короче уже содержит указатель на IHTMLWindow2 */
CComPtr<IHTMLDocument2> pDoc2;
CComPtr<IHTMLElementCollection> pAll;
CComPtr<IDispatch> pElementDisp;
CComPtr<IHTMLElement> pButton;
if( _FAILED( pWindow2->get_document( &pDoc2 ) ) ) return;
if( _FAILED( pDoc2->get_all( &pAll ) ) ) return;
if( _FAILED( pAll->item(CComVariant("Btn1"), CComVariant(0), &pElementDisp ) ) ) return;
if( _FAILED( pElementDisp.QueryInterface( &pButton ) ) ) return;
_HR( pButton->click() );
В общем вот так. Точно также можно ссылки на страницах кликать.
p.s. Код на синтаксис не проверял