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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.11.2016, 14:46   #1
igrok111
Форумчанин
 
Регистрация: 12.07.2012
Сообщений: 140
По умолчанию Установка прокси для браузера с авторизацией

Эта функция устанавливает http прокси в систему. Если прокси приватный, как осуществить автоматический ввод логина и пароля?
Код:
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;
igrok111 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использовать прокси с авторизацией в Selenium на java [CODER] Общие вопросы по Java, Java SE, Kotlin 2 14.12.2015 07:37
XE5 webbrowser прокси с авторизацией albionseo Компоненты Delphi 2 02.01.2015 11:34
[Indy]Прокси с авторизацией, Connection Closed Gracefully bakanaev Общие вопросы Delphi 4 19.05.2013 17:42
Delphi Webbrowser прокси с авторизацией nikita321 Общие вопросы Delphi 0 13.01.2013 17:33
Протестировать работу с авторизацией на прокси Alter Софт 3 23.05.2012 11:40