
17.02.2016, 12:31
|
 |
Исполняемый Ретровирус
|
|
Регистрация: 09.08.2008
Адрес: Umbrella Corporation
Сообщения: 743
Репутация: 1293
|
|
Как вариант:
Код:
Procedure SetProxy(cost Server: String);
var
Reg : TRegistry;
begin
Reg := TRegistry.Create;
Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Internet Settings',False);
Reg.WriteString('ProxyServer',Server);
Reg.WriteBool('ProxyEnable,True);
Reg.CloseKey;
Reg.Free;
InternetSetOption(0, INTERNET_OPTION_SETTINGS_CHANGED, 0, 0);
end;
This is how to use:
SetProxy('Proxy:Port');
либо
Код:
uses
WinInet,
Windows,
SysUtils;
type
INTERNET_PER_CONN_OPTION = record
dwOption: DWORD;
Value: record
case Integer of
1: (dwValue: DWORD);
2: (pszValue: PAnsiChar);
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;
pOptions: LPINTERNET_PER_CONN_OPTION;
end;
const
INTERNET_PER_CONN_FLAGS = 1;
INTERNET_PER_CONN_PROXY_SERVER = 2;
INTERNET_PER_CONN_PROXY_BYPASS = 3;
INTERNET_PER_CONN_AUTOCONFIG_URL = 4;
INTERNET_PER_CONN_AUTODISCOVERY_FLAGS = 5;
PROXY_TYPE_DIRECT = $00000001;
PROXY_TYPE_PROXY = $00000002;
PROXY_TYPE_AUTO_PROXY_URL = $00000004;
PROXY_TYPE_AUTO_DETECT = $00000008;
INTERNET_OPTION_REFRESH = 37;
INTERNET_OPTION_PER_CONNECTION_OPTION = 75;
INTERNET_OPTION_SETTINGS_CHANGED = 39;
function SetConnectionProxy(const conn_name, proxy_addr : AnsiString) : Boolean;
var
list : INTERNET_PER_CONN_OPTION_LIST;
dwBufSize: DWORD;
Options : array[0..2] of INTERNET_PER_CONN_OPTION;
begin
dwBufSize := SizeOf(list);
list.dwSize := dwBufSize;
list.pszConnection := PAnsiChar(conn_name);
list.dwOptionCount := 3;
list.pOptions := @Options;
// Set the flags
Options[0].dwOption := INTERNET_PER_CONN_FLAGS;
Options[0].Value.dwValue := PROXY_TYPE_DIRECT OR PROXY_TYPE_PROXY;
// Set proxy name
Options[1].dwOption := INTERNET_PER_CONN_PROXY_SERVER;
Options[1].Value.pszValue:= PAnsiChar(proxy_addr);
// Set proxy override .
Options[2].dwOption := INTERNET_PER_CONN_PROXY_BYPASS;
Options[2].Value.pszValue:= PAnsiChar('local');
// Set the new settings
Result := InternetSetOption(nil, INTERNET_OPTION_PER_CONNECTION_OPTION, @list, dwBufSize);
InternetSetOption(nil, INTERNET_OPTION_SETTINGS_CHANGED, nil, 0);
InternetSetOption(nil, INTERNET_OPTION_REFRESH , nil, 0);
end;
При этом в браузерах в настройках должна стоять галка типа "Использовать системные настройки прокси"
|