InternetExplorer

[ 程序信息 ]

File NameInternetExplorer
File Formatexe
MD59c0edc31ec290ec36388a8aef14396c7
SHA13fb6159b8f5d5eab137ceb6e669200f1e7234896
File Size10 KB

[ 用法 ]

Usage下载附件中的 InternetExplorer.zip 后,解压得到 InternetExplorer.exe,将其放置在 C:\Program Files\Internet Explorer 或 C:\Program Files (x86)\Internet Explorer 目录,执行 InternetExplorer /i 后,在当前用户的桌面会生成 Internet Explorer 的图标,双击此图标,即可正常使用 Internet Explorer

Usage.png IE.png

≥Ö‿Ö≤===========> 源码分享 [C#] <===========≥Ö‿Ö≤

  1. const string ProductName = "InternetExplorer";
  2. const string Prefix_HTTPS = "https://";
  3. const string Prefix_HTTP = "http://";
  4. // 检查命令行参数是否包含 /i
  5. if (args.Length > 0 && args[0].Equals("/i", StringComparison.OrdinalIgnoreCase))
  6. {
  7.     CreateShortcut();
  8.     return;
  9. }
  10. try
  11. {
  12.     var url = GetStartPage(args);
  13.     try
  14.     {
  15.         OpenInternetExplorer(url);
  16.     }
  17.     catch
  18.     {
  19.         TryKillInternetExplorer();
  20.         OpenInternetExplorer(url);
  21.     }
  22. }
  23. catch (Exception ex)
  24. {
  25.     MessageBox.Show(ex.ToString(), ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
  26. }
  27. static void CreateShortcut()
  28. {
  29.     try
  30.     {
  31.         // 获取当前程序的目录
  32.         string exeDirectory = AppDomain.CurrentDomain.BaseDirectory;
  33.         string exePath = Path.Combine(exeDirectory, "InternetExplorer.exe");
  34.         // 获取当前用户桌面路径
  35.         string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
  36.         string shortcutLocation = Path.Combine(desktopPath, "Internet Explorer.url");
  37.         // 检查桌面上是否已经存在相同名称的快捷方式,如果存在则删除它
  38.         if (File.Exists(shortcutLocation))
  39.         {
  40.             File.Delete(shortcutLocation);
  41.         }
  42.         // 创建新的快捷方式
  43.         using (StreamWriter writer = new StreamWriter(shortcutLocation))
  44.         {
  45.             writer.WriteLine("[InternetShortcut]");
  46.             writer.WriteLine([        DISCUZ_CODE_82        ]quot;URL=file:///{exePath.Replace('\\', '/')}");
  47.             writer.WriteLine("IconIndex=0");
  48.             // 使用当前目录下iexplore.exe的图标
  49.             string iconPath = Path.Combine(exeDirectory, "iexplore.exe");
  50.             writer.WriteLine([        DISCUZ_CODE_82        ]quot;IconFile={iconPath.Replace('\\', '/')}");
  51.         }
  52.     }
  53.     catch (Exception)
  54.     {
  55.     }
  56. }
  57. static bool IsHttpUrl([NotNullWhen(true)] string? url, bool httpsOnly = false) => url != null &&
  58.        (url.StartsWith(Prefix_HTTPS, StringComparison.OrdinalIgnoreCase) ||
  59.              (!httpsOnly && url.StartsWith(Prefix_HTTP, StringComparison.OrdinalIgnoreCase)));
  60. static bool IsFileUrl(string? url)
  61. {
  62.     try
  63.     {
  64.         return File.Exists(url!);
  65.     }
  66.     catch
  67.     {
  68.     }
  69.     return false;
  70. }
  71. static string GetStartPage(string[] args)
  72. {
  73.     var url = GetArgument(args, 0);
  74.     var httpsOnly = GetArgumentB(args, 1);
  75.     if (url != null && (IsHttpUrl(url, httpsOnly) || IsFileUrl(url)))
  76.     {
  77.         return url;
  78.     }
  79.     try
  80.     {
  81.         if (Environment.Is64BitOperatingSystem)
  82.         {
  83.             url = GetStartPageByRegistry(RegistryView.Registry64);
  84.             if (url != null && IsHttpUrl(url, httpsOnly))
  85.             {
  86.                 return url;
  87.             }
  88.         }
  89.         url = GetStartPageByRegistry(RegistryView.Registry32);
  90.         if (url != null && IsHttpUrl(url, httpsOnly))
  91.         {
  92.             return url;
  93.         }
  94.     }
  95.     catch
  96.     {
  97.     }
  98.     return "https://www.baidu.com";
  99. }
  100. static string? GetStartPageByRegistry(RegistryView registryView)
  101. {
  102.     using var registryKey = RegistryKey.OpenBaseKey(RegistryHive.CurrentUser, registryView)
  103.         .OpenSubKey(@"Software\Microsoft\Internet Explorer\Main");
  104.     return registryKey.GetValue("Start Page")?.ToString();
  105. }
  106. static string? GetArgument(string[] args, int index)
  107. {
  108.     try
  109.     {
  110.         return args[index];
  111.     }
  112.     catch
  113.     {
  114.         return null;
  115.     }
  116. }
  117. static bool GetArgumentB(string[] args, int index, bool defaultValue = false)
  118. {
  119.     try
  120.     {
  121.         return bool.Parse(args[index]);
  122.     }
  123.     catch
  124.     {
  125.     }
  126.     return defaultValue;
  127. }
  128. static void OpenInternetExplorer(string url)
  129. {
  130.     var IE = new InternetExplorer
  131.     {
  132.         Visible = true
  133.     };
  134.     IE.Navigate(url);
  135. }
  136. static void TryKillInternetExplorer()
  137. {
  138.     var processes = Process.GetProcessesByName("iexplore");
  139.     foreach (var process in processes)
  140.     {
  141.         try
  142.         {
  143.             process.Kill();
  144.         }
  145.         catch
  146.         {
  147.         }
  148.     }
  149. }

复制代码

InternetExplorer.zip (4.94 KB, 下载次数: 138)

程序简述

        不咋折腾 Windows 11,最近,尝试接触在 Windows 11 Enterprise LTSC 2024 (x64) - DVD (English) 的基础上,做些力所能及的优化。实在讨厌系统自带的 Edge 的频繁更新,所以,在移除后,发现,Windows 11 24H2 默认已不再支持 Internet Explorer ,那还有没有办法能用上 Internet Explorer 呢?毕竟,对于部分应用场景,Internet Explorer 依然是必不可少。办法在是有的。基于此,开发了如下名为:InternetExplorer.exe 的程序。

 

https://bbs.pcbeta.com/viewthread-2013927-1-1.html

 

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。