aierda 2024-04-20 15:12 采纳率: 72.1%
浏览 83
已结题

winform中使用edge的Kiosk模式

img

winform中使用edge的Kiosk模式,我想用全屏模式,这样不会有url地址栏,菜单栏这些东西了。然后我会在我的winform中
显示“上一页” “下一页”,但是winform中怎样可以访问到edge kiosk模式的历史记录呢?

img

如果使用非全屏模式,有大把的功能要去掉,这些功能要怎样去掉呢?

简言之,如果使用全屏模式,我得在winform中自己实现上一页 下一页功能,但是不用去屏蔽网页自带的很多功能菜单

如果使用非全屏模式,可以同时有多个网页,就不会存在什么上一页,下一页的说法了,但是呢,就要想办法去掉图2 中
红色框框中的那些功能。

期待各位能人能够给些意见和经验,或者解决方案,感谢!

  • 写回答

24条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-20 15:15
    关注
    获得1.50元问题酬金

    引自免费微信小程序:皆我百晓生

    在Windows Forms(WinForms)应用程序中使用Microsoft Edge的Kiosk模式时,您确实可以通过调整参数实现全屏展示并隐藏地址栏、收藏栏等界面元素,从而提供一个简洁的浏览体验。针对您的需求,以下是对两个主要问题的解答:

    问题一:在全屏Kiosk模式下实现“上一页”、“下一页”功能

    在全屏Kiosk模式下,Edge浏览器本身提供的导航按钮不可见。为了实现在WinForms中控制Edge的“上一页”和“下一页”功能,您可以利用Edge WebView2控件。WebView2提供了丰富的API,允许您通过编程方式与嵌入的网页进行交互,包括导航操作。

    步骤如下:

    1. 安装WebView2 SDK:确保已安装适用于WinForms的WebView2 SDK。如果尚未安装,请访问Microsoft Edge WebView2下载并安装。

    2. 创建WinForms项目并添加WebView2控件:在Visual Studio中新建或打开一个WinForms项目,然后通过NuGet Package Manager添加Microsoft.Web.WebView2包。这将自动添加WebView2控件到工具箱。

    3. 设计用户界面:在Form上放置两个按钮,分别命名为“上一页”和“下一页”。

    4. 编写导航事件处理程序

    using Microsoft.Web.WebView2.Core;
    
    public partial class Form1 : Form
    {
        private WebView2 webView;
    
        public Form1()
        {
            InitializeComponent();
    
            // 初始化WebView2控件
            webView = new WebView2();
            webView.Dock = DockStyle.Fill;
            Controls.Add(webView);
    
            // 设置初始URL
            webView.Source = new Uri("https://www.example.com");
    
            // 为“上一页”和“下一页”按钮添加事件处理程序
            btnBack.Click += BtnBack_Click;
            btnForward.Click += BtnForward_Click;
        }
    
        private async void BtnBack_Click(object sender, EventArgs e)
        {
            if (webView.CanGoBack)
            {
                await webView.CoreWebView2.GoBackAsync();
            }
        }
    
        private async void BtnForward_Click(object sender, EventArgs e)
        {
            if (webView.CanGoForward)
            {
                await webView.CoreWebView2.GoForwardAsync();
            }
        }
    }
    

    这样,当用户点击“上一页”或“下一页”按钮时,WinForms会调用相应的事件处理程序,通过WebView2控件的GoBackAsyncGoForwardAsync方法实现页面导航。

    问题二:在非全屏Kiosk模式下隐藏Edge浏览器的特定功能

    若选择使用非全屏Kiosk模式(即常规模式),您仍可以利用Edge浏览器的Kiosk模式参数或组策略设置来隐藏指定的界面元素。以下是两种可能的方法:

    方法一:使用Edge Kiosk Mode Arguments

    启动Edge时,可以附加特定的命令行参数以定制其外观。例如,要隐藏地址栏、收藏栏等,可以使用以下参数:

    msedge.exe --kiosk --edge-kiosk-type=fullscreen --disable-toolbar --disable-sidebar --disable-web-security --no-first-run https://example.com
    

    这里列举了一些常用的参数:

    • --kiosk: 启动Kiosk模式。
    • --edge-kiosk-type=fullscreen: 使用全屏Kiosk模式(根据您的描述,您似乎想使用非全屏模式,但这里仍提供该参数供参考)。
    • --disable-toolbar: 禁用顶部工具栏。
    • --disable-sidebar: 禁用侧边栏。
    • --disable-web-security: 禁用Web安全检查(如需启用,请移除此参数)。
    • --no-first-run: 不显示首次运行提示。

    根据实际需求,您可以调整或增删这些参数。在WinForms中启动Edge时,将这些参数附加到进程启动命令中即可。

    方法二:使用Group Policy or MDM Settings

    如果您在企业环境中管理多台设备,更推荐使用组策略(Group Policy)或移动设备管理(MDM)设置来统一配置Edge的行为。具体步骤如下:

    1. 访问Edge Kiosk Mode and Assigned Access Policies:访问微软官方文档,了解可用于Kiosk模式和分配访问的组策略或MDM设置:Microsoft Edge - Policies

    2. 配置所需设置:根据文档指导,通过组策略编辑器或MDM平台配置所需的策略,如禁用工具栏、侧边栏等。

    请注意,由于您的描述中并未明确指出是否使用非全屏模式,且您提到“可以同时有多个网页”,这似乎与Kiosk模式(通常用于单个全屏应用)的初衷相悖。如果您实际上希望在WinForms中嵌入多个可独立导航的网页视图,建议坚持使用第一部分所述的WebView2控件方案,它能更好地满足您的需求。

    综上所述,对于您的问题,建议采用WebView2控件在WinForms中实现全屏Kiosk模式下的“上一页”、“下一页”功能。如果您确实需要在非全屏模式下隐藏特定界面元素,可以尝试使用Edge Kiosk Mode Arguments或组策略/MDM设置。

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 4月28日
  • 创建了问题 4月20日