【Windows 10 应用开发】如何防止应用程序被截屏
2023-03-20 14:47:24 时间
今天老周只想跟大伙们分享一个小技巧,是的,小小的技巧,很简单,保证你能学会的,要是学不会,可以考虑跳泰山。
有些时候,我们可能会想到不要让应用程序界面上显示的内容被截屏,要阻止应用界面呈现在截图上,可以在 ApplicationView 类上找答案,因为这个行为是跟应用程序视图有直接关系的。
我们只需要设置一个属性就成了——IsScreenCaptureEnabled,如果允许程序被捕捉到,就设置为 true,要禁止被捕捉,设置为 false 就好了。简单吧。
看一个例子,先看XAML布局。
<Grid Margin="15"> <Grid.RowDefinitions> <RowDefinition Height="auto"/> <RowDefinition/> <RowDefinition Height="auto"/> </Grid.RowDefinitions> <TextBlock Text="中国高富帅的形象代表" FontSize="25" HorizontalAlignment="Center" Margin="0,6"/> <Image Grid.Row="1" Margin="3" Source="Assets1.png" /> <CheckBox Grid.Row="2" Margin="0,8" Content="禁止被截屏" FontSize="18" HorizontalAlignment="Center" Checked="OnChecked" Unchecked="OnUnChecked"/> </Grid>
重点是 CheckBox 控件,我处理了它的 Checked 和 UnChecked 事件,如果它被选中,就禁止应用界面被捕捉;如果没选中,就允许捕捉。
下面是实现代码。
ApplicationView appView = ApplicationView.GetForCurrentView(); private void OnChecked(object sender, RoutedEventArgs e) { appView.IsScreenCaptureEnabled = false; } private void OnUnChecked(object sender, RoutedEventArgs e) { appView.IsScreenCaptureEnabled = true; }
来,看看效果。首先,CheckBox 是没选中的,即允许截屏,这时候截取到的超清无水印图片如下。
然后,我们选上 CheckBox 控件,再截屏,得到的是一片黑乎乎的东西。
这个示例很简单,我就不提供源代码了,大家完全可以自己动手的。
相关文章
- 收藏备用,MySQL 8下忘密码后重置密码的办法(MySQL5老方法不灵了)
- 数据库不适合Docker及容器化的7大原因
- MariaDB 10.3首推系统版本表,误删数据不用跑路了!
- 七年一剑 华丽蜕变:WOT2018揭秘技术背后的真相
- 区块链真相如何?这篇文章说透了!
- 利用DB实现分布式锁的思路
- 区块链技术如果融合到各个行业,将如何改变我们的生活?
- 区块链创新离不开一流的工程技术能力
- Shiro整合springboot,freemaker,redis(含权限系统完整源码)
- 区块链如何提升食品安全,这有一份详细报告
- 教你玩转MyRocks/RocksDB—STATISTICS与后台线程篇
- 公开,公正,公平,区块链的试金石
- 循序渐进学习如何在MariaDB中配置主从复制?
- 区块链难理解?这里有一篇初学者指南
- 物联网设备安全导读
- 实录 | 苹果库克对话清华经管院长钱颖一:硅谷该多向中国学习
- ROS机器人程序设计(原书第2版)2.4.13 启动文件
- Rabbitmq的网络层浅析
- Clojure的transient集合
- Bash Shellshock事件:CVE-2014-6271资料汇总