<delect id="8lht3"><em id="8lht3"></em></delect>
    <delect id="8lht3"></delect>

      <sub id="8lht3"></sub><input id="8lht3"><li id="8lht3"></li></input>

          <sub id="8lht3"></sub>

            <thead id="8lht3"></thead>
            1. 當前位置: 首頁 > 教程資源 > Inno Setup 教程 > 正文
              Inno Setup 如何修改 Hosts 文件解決方案

              Inno Setup 如何修改 Hosts 文件解決方案

              作者:大眼仔~旭 日期:3年前 (2020-11-19) 評論:0 條

              摘要:對于想要修改 Hosts 文件的朋友來說我們除了自己手動定位到 Hosts 文件使用編輯器編輯外我們還可以通過批處理命令進行編輯。今天大眼仔旭要給大家介紹的是通過使用 Inno Setup 安裝包在安裝程序的時候對 Hosts 進行修改以達到屏蔽某些應用程序訪問某些服務器進行驗證的效果。 Windows 主機文件存儲 …

              對于想要修改 Hosts 文件的朋友來說我們除了自己手動定位到 Hosts 文件使用編輯器編輯外我們還可以通過批處理命令進行編輯。今天大眼仔旭要給大家介紹的是通過使用 Inno Setup 安裝包在安裝程序的時候對 Hosts 進行修改以達到屏蔽某些應用程序訪問某些服務器進行驗證的效果。

              Windows 主機文件存儲 IP 地址和域名有助于將計算機定向到 Internet 或本地網絡上的站點。 瀏覽 Web 通常不需要編輯 Hosts 文件,但是它是阻止有害站點的基本方法,還是一種將 Web 地址與正在開發中的網站綁定在一起的工具。 Hosts 文件設置不正確會導致網站停止加載,因此,如果您無法在線連接某些站點,請檢查文件中的錯誤條目或清除其修改。

              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              12
              13
              14
              15
              16
              17
              18
              19
              20
              21
              22
              23
              24
              25
              26
              27
              28
              29
              30
              31
              32
              33
              34
              35
              36
              37
              38
              39
              40
              41
              42
              43
              44
              45
              46
              47
              48
              49
              50
              51
              52
              53
              54
              55
              56
              57
              58
              59
              60
              61
              62
              63
              64
              65
              66
              67
              68
              69
              70
              71
              72
              73
              74
              75
              76
              77
              78
              79
              80
              81
              #ifdef Unicode
              #define A "W"
              #else
              #define A "A"
              #endif

              [code]
              const
              myMark = '由 gnatix 編寫';   // 作為標識

              function GetFileAttributes(lpFileName: String): Cardinal;
              external 'GetFileAttributes{#A}@kernel32.dll stdcall';

              function SetFileAttributes(lpFileName: String; dwFileAttributes: Cardinal): Boolean;
              external 'SetFileAttributes{#A}@kernel32.dll stdcall';

              function LineInFile(sLine, fPath: string): Boolean;
              var
              aos: TArrayOfString;
              n: Integer;
              begin
              Result:= false;
              if LoadStringsFromFile(fPath, aos) then
              for n:= 0 to GetArrayLength(aos)-1 do
              ? if aos[n] = sLine then
              ?   begin
              ?   Result := true;
              ?   Exit;
              ?   end;
              end;

              procedure AddHosts(newItem, comments: string);
              var
              OldFileAttribute: Cardinal;
              hfPath, newLine: string;
              begin
              hfPath := ExpandConstant('{sys}\drivers\etc\hosts');
              if not LineInFile(newItem, hfPath) then       // 僅添加 Hosts 中還沒有的項目
              ? begin
              ? OldFileAttribute:= GetFileAttributes(hfPath);
              ? SetFileAttributes(hfPath, FILE_ATTRIBUTE_NORMAL);
              ? newLine := newItem + ' # ' + myMark;
              ? If comments > ' ' then
              ?   newLine := newLine + ' / ' + comments;
              ? SaveStringToFile(hfPath, #13#10 + newLine, True);
              ? SetFileAttributes(hfPath, OldFileAttribute);
              ? end;
              end;

              procedure RemoveHosts(sItem: string);
              var
              OldFileAttribute: Cardinal;
              hfPath, newLine: string;
              stl: TStringList;
              n: Integer;
              begin
              hfPath := ExpandConstant('{sys}\drivers\etc\hosts');
              newLine := sItem + ' # ' + myMark;
              stl:= TStringList.Create;
              stl.LoadFromFile(hfPath);
              for n:= stl.Count-1 downto 0 do
              ? if Pos(newLine, stl.Strings[n]) = 1 then
              ?   stl.Delete(n);
              OldFileAttribute:= GetFileAttributes(hfPath);
              SetFileAttributes(hfPath, FILE_ATTRIBUTE_NORMAL);
              stl.SaveToFile(hfPath);
              stl.Free;
              SetFileAttributes(hfPath, OldFileAttribute);
              end;

              procedure Initializewizard;
              begin
              AddHosts('0.0.0.0 www.xxx.com', '這是注釋'); // 在 Hosts 中添加新項目,帶注釋
              AddHosts('0.0.0.0 www.111.com', '');       // 在 Hosts 中添加新項目,不帶注釋
              end;

              procedure DeinitializeUninstall;
              begin
              RemoveHosts('0.0.0.0 www.xxx.com'); // 從 Hosts 中刪除項目
              RemoveHosts('0.0.0.0 www.111.com');       // 從 Hosts 中刪除項目
              end;

              把以上代碼復制到 Inno Setup 腳本中保存或者根據您的需要再進行修改調整即可。

              Windows hosts 文件的功能類似于 DNS 服務器的本地副本,因此如果您要進行自定義域重定向,阻止網站或刪除由惡意軟件設置的惡意條目,則知道如何進行編輯可能會派上用場。 也就是說,在某些 Windows 版本中對此文件進行更改時,您可能會遇到權限錯誤和其他問題。

              聲明:大眼仔旭 | 本文采用署名-非商業性使用-相同方式共享 4.0 國際許可協議[CC BY-NC-SA]進行授權
              文章名稱:《Inno Setup 如何修改 Hosts 文件解決方案
              文章固定鏈接:http://www.glob-intel.com/inno-setup-hosts.html
              本站資源僅供個人學習交流,請于下載后 24 小時內刪除,不允許用于商業用途,否則法律問題自行承擔。
              轉載聲明
              全部評論: (0條)
              ^_^ 暫無評論!

              發表評論

              返回頂部
              免费看黄A片99,医院乱婬伦小说全集,国产蜜臀视频在线观看,又黄又爽有色的免费视频,欧美变态口味重另类在线视频
                <delect id="8lht3"><em id="8lht3"></em></delect>
                <delect id="8lht3"></delect>

                  <sub id="8lht3"></sub><input id="8lht3"><li id="8lht3"></li></input>

                      <sub id="8lht3"></sub>

                        <thead id="8lht3"></thead>