网页转EXE 网页变EXE 网页封装EXE
其实一直以来都在研究winform上面嵌套浏览器的技术,5年前就写过相关文章《C#Winform下使用WebKit、Geckofx、CefSharp心得》,但是吧效果真的不尽人意。要不就是太大,几乎是搬了整个浏览器嵌套进来,要不就是功能上有欠缺。总算在23.24年发现了edge的内核浏览器webview2。只要不是太老的电脑都可以正常使用,他的内核是在windows系统里自带的。这样一来程序只需要调用就可以了。下面贴部分代码展示
WebView2 web = new WebView2(); web.CreationProperties = new CoreWebView2CreationProperties() { UserDataFolder = "C://" }; //CoreWebView2EnvironmentOptions environmentOptions = new CoreWebView2EnvironmentOptions(); //environmentOptions.IsCustomCrashReportingEnabled = false; //var environment = await CoreWebView2Environment.CreateAsync(options: environmentOptions); //await web.EnsureCoreWebView2Async(environment); web.NavigationCompleted += Web_NavigationCompleted; web.CoreWebView2InitializationCompleted += Web_CoreWebView2InitializationCompleted; web.Source = new Uri(url); web.Dock = DockStyle.Fill; page.Controls.Add(web); this.tabs1.Pages.Add(page); this.tabs1.SelectedTab = page; await web.EnsureCoreWebView2Async(); var version = web.CoreWebView2.Environment.BrowserVersionString; web.CoreWebView2.Settings.AreDefaultContextMenusEnabled = config.ContextMenus; web.CoreWebView2.Settings.AreDevToolsEnabled = config.DevTools; if (config.user_agent.Length > 0) web.CoreWebView2.Settings.UserAgent = config.user_agent; web.CoreWebView2.Settings.IsStatusBarEnabled = config.ShowUrl; web.CoreWebView2.DownloadStarting += CoreWebView2_DownloadStarting;
以上就是webview的初始化操作,我还加入了许多功能来使得程序更完善。如全屏播放视频、自定义下载位置、禁止F12、禁止右键源代码、缩放功能等等等等。最终才做出了自己比较满意的效果。
该软件主要功能是将网页(支持本地网页文件)封装成客户端形式(EXE)方便使用,省去了打开浏览器,输入网址等繁琐步骤。而且该客户端无法修改网址,在最大程度上限制用户可访问的内容。适用于企业内部网站、个人开发网站分享、ERP、MES、ORM等。
软件采用EDGE内核,具有兼容性好、内存占用少、文件小(总大小7MB)、速度快、无毒等优点,个人独立开发维护(永久更新),所以想加任何功能理论上都可以实现。
说明文档
https://www.jycode.top/WebApp/
以下为效果图