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

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

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2013, 00:54   #1
Cruzel
Пользователь
 
Регистрация: 05.11.2011
Сообщений: 31
По умолчанию TChromium

Здравствуйте. Кто нибудь работает с TChromium? Есть адекватная документация по этому компоненту с примерами?
Cruzel вне форума Ответить с цитированием
Старый 06.11.2013, 01:07   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я не работаю.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.11.2013, 01:54   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

На русском - нету, и вряд ли вообще ожидается.
В Google Groups есть форум поддержки на англ. языке.
Есть StackOverflow, так же на англ. языке. Богатые инфой ресурсы.
есть демки в комплекте.
Есть документация в самих исходниках.
Есть сам Chromium и его документация.
Человек_Борща вне форума Ответить с цитированием
Старый 06.11.2013, 15:38   #4
Avazart
Форумчанин
 
Аватар для Avazart
 
Регистрация: 13.08.2011
Сообщений: 184
По умолчанию

Кстати, ни кто не знает почему по закрытию программы с TChromium выскакивает AV ?
Avazart вне форума Ответить с цитированием
Старый 06.11.2013, 16:05   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Ставите MadExcept, собираете с ним проект и ловите баг.
Человек_Борща вне форума Ответить с цитированием
Старый 06.11.2013, 19:28   #6
Cruzel
Пользователь
 
Регистрация: 05.11.2011
Сообщений: 31
По умолчанию

Подскажите, а как подкрутить прокси к TChromium?
Cruzel вне форума Ответить с цитированием
Старый 11.11.2013, 03:25   #7
Cruzel
Пользователь
 
Регистрация: 05.11.2011
Сообщений: 31
По умолчанию

В общем придумал как реализовать. Только прокси будет устанавливаться во всех браузерах, но по другому совсем никак. В общем, добавляем в uses
Код:
WinInet
Далее добавляем функцию

Код:
function SetSystemProxy(host: string; port: string): boolean;
  const

    INTERNET_PER_CONN_FLAGS = 1;
    PROXY_TYPE_PROXY = $00000002;
    INTERNET_PER_CONN_PROXY_BYPASS = 3;
    INTERNET_PER_CONN_PROXY_SERVER = 2;
    INTERNET_OPTION_PER_CONNECTION_OPTION = 75;
    PROXY_TYPE_DIRECT = $00000001;

  type

    INTERNET_PER_CONN_OPTION = record
      dwOption: DWORD;
      Value: record
        case Integer of
          1: (dwValue: DWORD);
          2: (pszValue: PChar); {Unicode/ANSI}
          3: (ftValue: TFileTime);
      end;
    end;

    LPINTERNET_PER_CONN_OPTION = ^INTERNET_PER_CONN_OPTION;
    INTERNET_PER_CONN_OPTION_List = record
      dwSize: DWORD;
      pszConnection: LPTSTR;
      dwOptionCount: DWORD;
      dwOptionError: DWORD;
      intOptions: LPINTERNET_PER_CONN_OPTION;
    end;
    LPINTERNET_PER_CONN_OPTION_List = ^INTERNET_PER_CONN_OPTION_List;

  var list: INTERNET_PER_CONN_OPTION_LIST;
      dwBufSize: DWORD;
      hInternet: Pointer;
      Options: array[1..3] of INTERNET_PER_CONN_OPTION;

begin
  Result := False;
  dwBufSize := SizeOf(list);
  list.dwSize := SizeOf(list);
  list.pszConnection := nil;
  list.dwOptionCount := High(Options);

  Options[1].dwOption := INTERNET_PER_CONN_FLAGS;

  Options[2].dwOption := INTERNET_PER_CONN_PROXY_SERVER;
  if (host='') or (port='') then
  begin
    Options[1].Value.dwValue := PROXY_TYPE_DIRECT;
    Options[2].Value.pszValue := PChar('');
  end else
  begin
    Options[1].Value.dwValue := PROXY_TYPE_PROXY;
    Options[2].Value.pszValue := PChar(host+':'+port);
  end;

  Options[3].dwOption := INTERNET_PER_CONN_PROXY_BYPASS;
  Options[3].Value.pszValue := PChar('');

  list.intOptions := @Options;
  hInternet := InternetOpen(PChar(''), INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0);
  if hInternet <> nil then
  try
    Result := InternetSetOption(nil, INTERNET_OPTION_PER_CONNECTION_OPTION, @list, dwBufSize);
    Result := Result and InternetSetOption(nil, INTERNET_OPTION_REFRESH, nil, 0);
  finally
    InternetCloseHandle(hInternet)
  end;
end;
Прокси задаётся с помощью такого кода:

Код:
procedure TForm1.Button3Click(Sender: TObject);
var
ip, port: String;
begin
ip:='37.57.183.13';
port:='3128';
SetSystemProxy(ip,port);
Chromium1.Refresh;
sleep(3000);
Chromium1.Load('http://2ip.ru/');
end;
Задержку "sleep(3000);" добавил потому что программа не сразу берёт прокси, а с задержкой. Надеюсь кому-то помог
Cruzel вне форума Ответить с цитированием
Старый 11.11.2013, 03:31   #8
Cruzel
Пользователь
 
Регистрация: 05.11.2011
Сообщений: 31
По умолчанию

Кстати, забыл. Чтобы сбросить прокси вам необходимо отправить функцию с пустыми параметрами. Например:
Код:
SetSystemProxy('','');
Cruzel вне форума Ответить с цитированием
Старый 20.11.2013, 15:02   #9
Avazart
Форумчанин
 
Аватар для Avazart
 
Регистрация: 13.08.2011
Сообщений: 184
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Ставите MadExcept, собираете с ним проект и ловите баг.
Так проект тут не причем, проект только грузит страничку и больше нечего.
Avazart вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TChromium docc Общие вопросы Delphi 0 16.08.2013 23:13
Tchromium не работает DmitryVisuals Компоненты Delphi 0 08.06.2013 20:03
Работа с TChromium cheller Общие вопросы Delphi 1 31.05.2013 16:12
TChromium прокси Terikon Компоненты Delphi 0 21.05.2013 03:05
TChromium+вкладки referent Компоненты Delphi 2 07.10.2012 14:58