リビジョン | 109eca170b5ccecfb953fc94d87a2c79b0b2c988 (tree) |
---|---|
日時 | 2018-02-08 19:47:21 |
作者 | Kazuhiro Fujieda <fujieda@user...> |
コミッター | Kazuhiro Fujieda |
IEのゾーンがローカルイントラネットになることがあるのを防ぐ
@@ -14,6 +14,7 @@ | ||
14 | 14 | |
15 | 15 | using System; |
16 | 16 | using System.Runtime.InteropServices; |
17 | +using Microsoft.Win32; | |
17 | 18 | using FILETIME = System.Runtime.InteropServices.ComTypes.FILETIME; |
18 | 19 | |
19 | 20 | namespace KancolleSniffer |
@@ -45,6 +46,7 @@ namespace KancolleSniffer | ||
45 | 46 | { |
46 | 47 | _orgList = list; |
47 | 48 | } |
49 | + AdjustLocalIntranetZoneFlags(); | |
48 | 50 | } |
49 | 51 | |
50 | 52 | public void SetAutoConfigUrl(string url) |
@@ -121,6 +123,21 @@ namespace KancolleSniffer | ||
121 | 123 | InternetSetOption(IntPtr.Zero, InternetOption.INTERNET_OPTION_PROXY_SETTINGS_CHANGED, IntPtr.Zero, 0); |
122 | 124 | } |
123 | 125 | |
126 | + /// <summary> | |
127 | + /// PACファイルでDIRECTを指定すると、すべてのサイトがローカルイントラネットになり、 | |
128 | + /// IEが互換表示になるなどの不具合があるので、イントラネットにならないようにする | |
129 | + /// </summary> | |
130 | + private void AdjustLocalIntranetZoneFlags() | |
131 | + { | |
132 | + var zones = Registry.CurrentUser.OpenSubKey( | |
133 | + @"Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1", true); | |
134 | + if (zones == null) | |
135 | + return; | |
136 | + if (!(zones.GetValue("Flags") is int flags)) | |
137 | + return; | |
138 | + zones.SetValue("Flags", flags & (-1 ^ 0x108)); | |
139 | + } | |
140 | + | |
124 | 141 | [DllImport("WinInet.dll", CharSet = CharSet.Unicode)] |
125 | 142 | private static extern bool InternetQueryOption(IntPtr hInternet, InternetOption dwOption, |
126 | 143 | ref InternetPerConnOptionList optionList, ref int lpdwBufferLength); |