无纸化会议-安全初步

无纸化会议-安全初步

这一周,我主要学习了C#和WPF的使用,内容比较多,C#我已经学完了,WPF学了一大半,还没完全学完,由于考虑到时间问题,我决定边学习边开始项目的进展。

我这一周主要做的是关于安全方面的问题,因为要求不能退出程序,所以有些功能必须ban掉,比如手势,平板上的Win键,键盘上的win键,还有一些组合键(比如Alt+F4,Ctrl+Alt+Delete等),这些都可能会导致程序退出,所以必须ban掉;再就是需要禁止截屏,在Windows平板上有几种截屏方式,这个后面会介绍,我们需要一一ban掉;下面我来一一介绍一下。


一、禁用手势

Windows平板支持几种手势,其中,左划的手势会调出窗口视图,如下图所示:
在这里插入图片描述
右划的手势会调出通知栏,如下图所示:
在这里插入图片描述
这两种手势都会影响软件的正常运行,使软件会议时可以退出,这是不符合要求的,所以我们需要禁掉他们。

首先我们打开注册表编辑器,定位至HKEY_LOCAL_MACHINE
SOFTWARE\Policies\Microsoft\Windows\EdgeUI,如果没有EdgeUI项,可右键点击Windows项,选择新建一个项,并重命名为EdgeUI。

然后我们选中EdgeUI项,在右侧窗口中新建名为 AllowEdgeSwipe 的DWORD(32位)值,数值数据按默认的 0 就可以了。接着我们关闭注册表编辑器,重启系统后手势就被禁掉了。如果以后想在重新开启边缘滑动手势,只需删除新建的AllowEdgeSwipe值,或者把AllowEdgeSwipe值的数值数据设置为 1 即可。

二、禁用平板上的Win键

Windows平板的右边有一个Win键,点击这个键就可以调出菜单栏,如下图所示:
在这里插入图片描述
这很显然会影响程序的运行,用户可以通过菜单栏跳到其他程序,这是不符合要求的,所以我们要禁掉平板上的win键,我们可以通过下面的方法禁掉平板上的win键:

新建一个文本文档,复制以下内容:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
“Scancode Map”=hex:00,00,00,00,00,00,00,00,03,00,00,00,00,00,5b,e0,00,00,00,5c,
e0,00,00,00,00
保存文件,将后缀改为为reg,双击这个文件将文件中的信息导入注册表,重启系统后win键就被禁掉了。

三、禁用键盘组合键

除了上面说的这两种,还有键盘上的组合键需要禁掉,需要禁掉的组合键有Alt+F4(退出程序),Win+Shift+S(截屏),Ctrl+Alt+Delete(调出安全选项),等等(暂时想到这些,以后想到再补充)。

禁掉这些组合键的方法很简单,就是设置一个按键监听事件,当监听到按下的键是我们要禁用的组合键是就跳过对组合键的处理(令Handled属性为true)。

XAML代码:

<Window x:Class="WpfApp1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp1" xmlns:sys="clr-namespace:System;assembly=mscorlib"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800"
        KeyDown="Win_PreviewKeyDown">

C#代码:

private void Win_PreviewKeyDown(object sender, KeyEventArgs e)
        {
    
    
             
            
            Key key = (e.Key == Key.System ? e.SystemKey : e.Key);
             
            //禁掉Alt+F4
            if ( (Keyboard.IsKeyDown(Key.LeftAlt) || Keyboard.IsKeyDown(Key.LeftAlt)) && Keyboard.IsKeyDown(Key.F4) )
            {
    
    
                e.Handled = true;
            }

            //禁掉Win+Shift+S
            if ( (Keyboard.IsKeyDown(Key.LWin) || Keyboard.IsKeyDown(Key.RWin)) 
                && (Keyboard.IsKeyDown(Key.LeftShift) || Keyboard.IsKeyDown(Key.RightShift)) 
                && Keyboard.IsKeyDown(Key.S))
            {
    
    
                e.Handled = true;
                
            }

            //禁掉Ctrl+Alt+Delete
            if ((Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl))
                && (Keyboard.IsKeyDown(Key.LeftAlt) || Keyboard.IsKeyDown(Key.RightAlt))
                && Keyboard.IsKeyDown(Key.Delete))
            {
    
    
                e.Handled = true;

            }
}

总结

因为这一周主要是在学习,所以用来做项目的时间不是特别多,暂时完成了这些东西(主要是安全方面的问题),有些部分还不太完善,可能会有遗漏,等下一周我很快就能学完了,这样我就会有大量的时间来做项目了,下周我打算做一个画板以及笔记,如果有余力的话再把mp4播放器做一下。这一周已经结束了,下一周继续努力,争取将项目做好,加油!!!

猜你喜欢

转载自blog.csdn.net/weixin_55713817/article/details/115059890