站内搜索

用Delphi检测IE使用的代理服务器

  如果我们开发的对象,不是在公网的环境内上网,是使用内网的,我们应该怎么样检测你的IE使用的代理服务器呢?接下来我们通过以下实例来学习:


  //-----------------------------------------------
   //记得引用 WinInet 单元
   //-----------------------------------------------
   uses
   WinInet

  //----------------------------------------------
   //定义要使用的函数
   //----------------------------------------------

  function GetProxyInformation: string;
   var
   ProxyInfo: PInternetProxyInfo;
   Len: LongWord;
   begin
   Result := '';
   Len := 4096;
   GetMem(ProxyInfo, Len);
   try
   if InternetQueryOption(nil, INTERNET_OPTION_PROXY, ProxyInfo, Len) then
   if ProxyInfo^.dwAccessType = INTERNET_OPEN_TYPE_PROXY then
   begin
   Result := ProxyInfo^.lpszProxy
   end;
   finally
   FreeMem(ProxyInfo);
   end;
   end;

  procedure GetProxyServer(protocol: string; var ProxyServer: string;
   var ProxyPort: Integer);
   var
   i: Integer;
   proxyinfo, ps: string;
   begin
   ProxyServer := '';
   ProxyPort := 0;

  proxyinfo := GetProxyInformation;
   if proxyinfo = '' then
   Exit;

  protocol := protocol + '=';


  i := Pos(protocol, proxyinfo);
   if i > 0 then
   begin
   Delete(proxyinfo, 1, i + Length(protocol));
   i := Pos(';', ProxyServer);
   if i > 0 then
   proxyinfo := Copy(proxyinfo, 1, i - 1);
   end;

  i := Pos(':', proxyinfo);
   if i > 0 then
   begin
   ProxyPort := StrToIntDef(Copy(proxyinfo, i + 1, Length(proxyinfo) - i), 0);
   ProxyServer := Copy(proxyinfo, 1, i - 1)
   end
   end;
   //----------------------------------------------------------------
   //使用范例
   //----------------------------------------------------------------
   procedure TForm1.Button1Click(Sender: TObject);
   var
   ProxyServer: string;
   ProxyPort: Integer;
   begin
   GetProxyServer('http', ProxyServer, ProxyPort);
   if  ProxyPort=0 then
   begin
   ShowMessage('你的IE没有使用的代理服务器')
   end
   else
   Label1.Caption := ProxyServer;
   label2.Caption := IntToStr(ProxyPort);

  end;

  • 上一篇:用Delphi实现打印功能
  • 下一篇:关于VisiBroker For Delphi的使用(1)