我想要通过delphi做一个程序,修改ie的相关设置,如下:         增加 "安全 "选项卡中的 "受信任站点 "里面的信任站点; 
        安全选项卡中,受信任站点的自定义级别里面的相关设置,如运行activex控件等 如何做?

解决方案 »

  1.   

    你可以通过Internet Security Manager Object来实现你想要的。
    DLL: Urlmon.dll
    CLSID: CLSID_InternetSecurityManagerHope it helps.//Ali
      

  2.   

    程序调用“C:\WINDOWS\system32\inetcpl.cpl”文件,然后按句柄用delphi来控制该文件。
      

  3.   

    unit UnitMain;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, Registry;type
      TFormMain = class(TForm)
        procedure FormCreate(Sender: TObject);
      published
        BtnOK: TButton;
        BtnCancel: TButton;
        procedure BtnOKClick(Sender: TObject);
        procedure BtnCancelClick(Sender: TObject);
        procedure ModIESafeConfig();
        procedure AddTrustSiteUrl(siteUrl: string);
        procedure AddTrustSiteIP(siteIP: string);
        procedure ModPopWindowCfg();
      private
        { Private declarations }
        IEConfigPathStr, TrustSiteUrlKeyStr, TrustSiteIPKeyStr, PopWindowKeyStr: string;
      public
        { Public declarations }
      end;var
      FormMain: TFormMain;implementation{$R *.dfm}procedure TFormMain.ModIESafeConfig();
    var
      Reg: TRegistry;
    begin
      Reg := TRegistry.Create;
      try
         Reg.RootKey := HKEY_CURRENT_USER;
         if not Reg.OpenKey(IEConfigPathStr, False) then
         begin
           ShowMessage('Error find Key:' + Reg.CurrentPath + IEConfigPathStr);
           Reg.CreateKey(IEConfigPathStr);
         end;
         if not Reg.OpenKey(IEConfigPathStr, False) then
         begin
           ShowMessage('Error in Opening Created Key');
         end else begin
           Reg.WriteInteger('1001', DWORD($00000000));
           Reg.WriteInteger('1004', DWORD($00000000));
           Reg.WriteInteger('1200', DWORD($00000000));
           Reg.WriteInteger('1201', DWORD($00000000));
           Reg.WriteInteger('1400', DWORD($00000000));
           Reg.WriteInteger('1402', DWORD($00000000));
           Reg.WriteInteger('1405', DWORD($00000000));
           Reg.WriteInteger('1407', DWORD($00000000));
           Reg.WriteInteger('1809', DWORD($00000003));
           Reg.WriteInteger('2201', DWORD($00000000));
           Reg.WriteInteger('2000', DWORD($00000000));
         end;
      finally
        Reg.Free;
      end;
    end;procedure TFormMain.AddTrustSiteUrl(siteUrl: string);
    var
      Reg: TRegistry;
      urlFirst: string;
    begin
      Reg := TRegistry.Create;
      try
        Reg.RootKey := HKEY_CURRENT_USER;
        Reg.OpenKey(TrustSiteUrlKeyStr, true);
        urlFirst := decodeUrlFirst(siteUrl);
        if (Length(siteUrl) > 0) and (Length(urlFirst) > 0) then
        begin
          Reg.OpenKey(siteUrl, true);
          Reg.OpenKey(urlFirst, true);
          Reg.WriteInteger('http', DWORD($00000002));
        end;
      finally
        Reg.Free;
      end;
    end;procedure TFormMain.AddTrustSiteIP(siteIP: string);
    var
      i: integer;
      b: boolean;
      str: string;
      Reg: TRegistry;
    begin
      Reg := TRegistry.Create;
      try
        Reg.RootKey := HKEY_CURRENT_USER;
        Reg.OpenKey(TrustSiteIPKeyStr, true);
        i := 1;
        b := true;
        while b do
        begin
          if Reg.KeyExists('Range' + IntToStr(i)) then
          begin
            Reg.OpenKey('Range' + IntToStr(i), false);
            str := Reg.ReadString(':Range');
            if (str = siteIP) then
            begin
              b := false;
            end else begin
              Inc(i);
            end;
            Reg.RootKey := HKEY_CURRENT_USER;
            Reg.OpenKey(TrustSiteIPKeyStr, true);
          end else begin
            b := false;
          end;
        end;    Reg.RootKey := HKEY_CURRENT_USER;
        Reg.OpenKey(TrustSiteIPKeyStr, true);
        Reg.OpenKey('Range' + IntToStr(i), true);
        Reg.WriteInteger('http', DWORD($00000002));
        Reg.WriteString(':Range', siteIP);
      finally
        Reg.Free;
      end;
    end;procedure TFormMain.ModPopWindowCfg();
    var
      Reg: TRegistry;
    begin
      Reg := TRegistry.Create;
      try
        Reg.RootKey := HKEY_CURRENT_USER;
        Reg.OpenKey(PopWindowKeyStr, true);
        Reg.WriteString('PopupMgr', 'no');
      finally
        Reg.Free;
      end;
    end;procedure TFormMain.FormCreate(Sender: TObject);
    begin
      IEConfigPathStr := '\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2';
      TrustSiteUrlKeyStr := '\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\';
      TrustSiteIPKeyStr := '\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges\';
      PopWindowKeyStr := '\Software\Microsoft\Internet Explorer\New Windows';
    end;procedure TFormMain.BtnOKClick(Sender: TObject);
    begin
      ModIESafeConfig();
      AddTrustSiteUrl('www.186.com');
      AddTrustSiteIP('186.186.186.186');
      ModPopWindowCfg();
      ShowMessage('设置完成,请启动IE测试!');
    end;procedure TFormMain.BtnCancelClick(Sender: TObject);
    begin
      FormMain.Close;
    end;end.