Нужно чтобы кнопка на станице нажалась сама в определённое время. Как до неё добраться из Visual C. и сымитировать нажатие? Мне кажется это связано с IDispatch, но у меня не получается получить доступ к кнопке. К IE добрался, а к кнопке не могу.
Здравствуйте, 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. Код на синтаксис не проверял
Здравствуйте, Scud, Вы писали:
S>1. У кнопки должен быть провисан атрибут ID
S> <INPUT TYPE="Button" ID="Btn1" VALUE="Click me" onclick="window.alert(this.id + 'has been clicked')">
S>2. Если добрался до IE, значит есть IHTMLWindow2
S> Отсюда такой код:
S>S>CComPtr<IHTMLWindow2> pWindow2 = /* короче уже содержит указатель на IHTMLWindow2 */
S>CComPtr<IHTMLDocument2> pDoc2;
S>CComPtr<IHTMLElementCollection> pAll;
S>CComPtr<IDispatch> pElementDisp;
S>CComPtr<IHTMLElement> pButton;
S>if( _FAILED( pWindow2->get_document( &pDoc2 ) ) ) return;
S>if( _FAILED( pDoc2->get_all( &pAll ) ) ) return;
S>if( _FAILED( pAll->item(CComVariant("Btn1"), CComVariant(0), &pElementDisp ) ) ) return;
S>if( _FAILED( pElementDisp.QueryInterface( &pButton ) ) ) return;
S>_HR( pButton->click() );
S>
а можно таким способом установить текст в элемент file upload ?
какой в этом случае метод использовать ?
попробовал put_outerText, так он рисует текст вместо самого элемента
Здравствуйте, Аноним, Вы писали:
А>а можно таким способом установить текст в элемент file upload ?
А>какой в этом случае метод использовать ?
А>попробовал put_outerText, так он рисует текст вместо самого элемента
value Property
--------------------------------------------------------------------------------
Retrieves the file name of the input object after the text is set by user input.
Syntax
HTML N/A
Scripting [ sValue = ] INPUT type=file.value
Possible Values
sValue String that receives the file name.
The property is read-only. The property has no default value.