Форум программистов, компьютерный форум CyberForum.ru

Вытащить скрипты из браузера - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Maymistov
0 / 0 / 0
Регистрация: 16.07.2007
Сообщений: 27
04.07.2008, 08:37     Вытащить скрипты из браузера #1
Люди, помогите разобраться с исходником.
Он должен вытаскивать скрипты из браузера.
Вроде всё работает (по крайней мере количество скриптов определяется точно),
но какой бы функцией я бы не пытался вытащить из pIElem, хоть какую-нибудь информацию,
в Memo заносятся только числа. Может я не правильно с BSTR работаю...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <mshtml.h>
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
IHTMLDocument2 *HTMLDocument = NULL;
if(!CppWebBrowser->Busy && CppWebBrowser->Document &&
AnsiString(CppWebBrowser->LocationURL) != 'about:blank' &&
SUCCEEDED(CppWebBrowser->Document->QueryInterface(
IID_IHTMLDocument2, (LPVOID*)&HTMLDocument)))
  {
 
  IHTMLElementCollection* pElements;
  HRESULT hr2 = HTMLDocument->get_scripts(&pElements);
  long plongnumberofelements;
  HRESULT hr3 = pElements->get_length( &plongnumberofelements);
  if ( hr3 == S_OK )
  for ( int i=0; i< plongnumberofelements; i++ )
  {
  VARIANT varIndex;
  varIndex.vt = VT_UINT;
  varIndex.lVal = i;
  VARIANT var2;
  VariantInit( &var2 );
  IDispatch* pDisp;
  HRESULT hr4;
  hr4 = pElements->item( varIndex, var2, &pDisp );
  BSTR pppp;
  IHTMLScriptElement* pIElem;
  pDisp->QueryInterface(IID_IHTMLScriptElement,(LPVOID*) &pIElem);
 
  pIElem->get_text(&pppp);
  Memo1->Lines->Add(WideChar(pppp));    ///  может здесь ошибка...
 
  }
  }
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.07.2008, 08:37     Вытащить скрипты из браузера
Посмотрите здесь:

Нужно вытащить из массива... C++
C++ Вытащить текст из файла
C++ вытащить числа из строки
C++ C и doc, вытащить инфу
bad скрипты в TWebBrowser C++
C++ Вытащить число из строки
C++ как вытащить парные цифры?
луа скрипты C++
C++ Скрипты на рабочий стол
C++ Написать MatLAB-скрипты, считывающие данные о кривой и поверхности из файлов
C++ Макросы и скрипты (Lua)
Вытащить байт из dword C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
boombastik
7 / 7 / 0
Регистрация: 13.02.2007
Сообщений: 1,255
05.07.2008, 17:25     Вытащить скрипты из браузера #2
Очень смахивает на то что ты указатель на указатель привел просто к указателю, в то время как для получения значения необходимо делать это дважды, хотя я не берусь это утверждать с полной уверенностью.

С уважением, Владимир
boombastik
7 / 7 / 0
Регистрация: 13.02.2007
Сообщений: 1,255
05.07.2008, 17:29     Вытащить скрипты из браузера #3
Возможно надо делать так, хотя я и не уверен

C++
1
2
3
4
5
6
BSTR* pPppp;
IHTMLScriptElement* pIElem;
pDisp->QueryInterface(IID_IHTMLScriptElement,(LPVOID*) &pIElem);
 
pIElem->get_text(&pPppp);
Memo1->Lines->Add(WideChar(*pPppp));
Проверь в документации, что надо передавать в качестве параметра методу get_text...

Удачи, Владимир
Maymistov
0 / 0 / 0
Регистрация: 16.07.2007
Сообщений: 27
05.07.2008, 22:30  [ТС]     Вытащить скрипты из браузера #4
Вот так работает:

C++
1
2
3
4
BSTR pppp;
pIElem->get_text(&pppp);
TVariant a=pppp;
Memo1->Lines->Add(a);
Но только когда срипт явно прописан в HTML.
Когда черезе тег src=filename.js - не срабатывает
Yandex
Объявления
05.07.2008, 22:30     Вытащить скрипты из браузера
Ответ Создать тему
Опции темы

Текущее время: 21:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru