首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用C#和WPF在Windows上阻止屏幕截图

在Windows上使用C#和WPF阻止屏幕截图的方法是通过使用Windows API函数来实现。以下是一个基本的示例代码:

代码语言:txt
复制
using System;
using System.Runtime.InteropServices;
using System.Windows;
using System.Windows.Interop;

namespace ScreenCaptureBlocker
{
    public partial class MainWindow : Window
    {
        private const int GWL_EXSTYLE = -20;
        private const int WS_EX_NOREDIRECTIONBITMAP = 0x00200000;

        [DllImport("user32.dll", SetLastError = true)]
        private static extern int GetWindowLong(IntPtr hWnd, int nIndex);

        [DllImport("user32.dll", SetLastError = true)]
        private static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);

        public MainWindow()
        {
            InitializeComponent();
        }

        protected override void OnSourceInitialized(EventArgs e)
        {
            base.OnSourceInitialized(e);

            IntPtr hWnd = new WindowInteropHelper(this).Handle;
            int exStyle = GetWindowLong(hWnd, GWL_EXSTYLE);
            SetWindowLong(hWnd, GWL_EXSTYLE, exStyle | WS_EX_NOREDIRECTIONBITMAP);
        }
    }
}

这段代码通过调用GetWindowLongSetWindowLong函数来获取和设置窗口的扩展样式。其中,WS_EX_NOREDIRECTIONBITMAP是一个扩展样式,用于阻止屏幕截图。

这段代码可以用于使用C#和WPF开发的Windows应用程序中,通过将其应用于主窗口,可以阻止屏幕截图。请注意,这只是一种基本的阻止屏幕截图的方法,可能无法完全阻止高级截屏工具的使用。

推荐的腾讯云相关产品:腾讯云服务器(CVM)和腾讯云密钥管理系统(KMS)。

  • 腾讯云服务器(CVM):提供弹性计算能力,可根据业务需求灵活调整配置,支持Windows操作系统,适用于部署和运行Windows应用程序。了解更多信息,请访问:腾讯云服务器(CVM)
  • 腾讯云密钥管理系统(KMS):提供密钥管理和加密服务,可用于保护敏感数据的安全性。可以使用KMS来加密和解密在应用程序中使用的敏感信息,如数据库连接字符串等。了解更多信息,请访问:腾讯云密钥管理系统(KMS)

请注意,以上提到的腾讯云产品仅作为示例,其他云计算品牌商也提供类似的产品和服务。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样)

    在 Windows 10 上为 WPF 窗口添加模糊特效(就像开始菜单和操作中心那样) 发布于 2017-10-01 16:14...本文提供了一个完整的用于在 Windows 10 上实现模糊特效的 C# 类,没有放到 GitHub 也没有其他类型的开源。如果需要直接拿走就好。 ---- ? ? 为什么不推荐使用?...事实上此类中的代码来源也是多个地方找到的,最开始是 C 语言的版本,而后从 Nukepayload2/sample-win10-aeroglass 找到了 C# 的版本,最终基于它改造成了现在这个样子。...---- 参考资料 如何评价微软在 Build 2017 上提出的 Fluent Design System?...---- 附:封装好的 API 代码 本文会经常更新,请阅读原文: https://walterlv.com/post/win10/2017/10/02/wpf-transparent-blur-in-windows

    5.4K30

    C#.NET.NET Core优秀项目和框架2024年12月简报

    前言 公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的详细介绍、功能特点、使用方式以及部分功能截图等...WPF 开发的管理系统,该项目包含了用户登录、人员管理、角色授权、插件管理、职位管理、主页功能(邮件、皮肤、设置)等功能,对于一个 WPF 初学者而言是一个值得参考和学习的项目。...、截图工具,允许用户录制屏幕活动、捕获屏幕截图、录制音频以及记录鼠标和键盘活动(尽管该项目已被归档,但仍然可以下载和使用它)。...项目简介: GTKSystem.Windows.Forms是一个C#桌面应用程序跨平台(Windows、Linux、macOS)开发框架,基于GTK组件开发。...使用该框架开发项目时,Visual Studio可以使用C#的原生WinForms表单窗体设计器,保持与原生WinForms相同的属性、方法和事件,无需额外学习。

    14410

    dotnet 从入门到放弃的 500 篇文章合集

    本文是记录我从入门到放弃写的博客 博客包括 C#、WPF、UWP、dotnet core 、git 和 VisualStudio 和一些算法,所有博客使用 docx 保存 下载:dotnet 从入门到放弃的...-uwp-兴趣线 win10-uwp-切换主题 win10-uwp-列表模板选择器 win10-uwp-初始屏幕 win10-uwp-判断本地ip win10-uwp-右击浮出窗在点击位置 win10-...使用 Direct2D1 画图 绘制基本图形 WPF 使用 Direct2D1 画图 wpf 使用 Dispatcher.Invoke 冻结窗口 WPF 使用 SharpDX 在 D3DImage 显示...DataGridTextColumn wpf 绑定 TextLength WPF 编译为 AnyCPU 和 x86 有什么区别 WPF 获得触摸精度和触摸点 WPF 获得触笔悬停元素上 WPF 解决...图论 Warshall 和Floyd 矩阵传递闭包 在 windows 安装 Jekyll 域名 大文件的存储和备份 如何使用 C# 爬虫获得专栏博客更新排行 如何使用 Q# 如何使用 Telegram

    10.5K20

    将 WPF 窗口嵌入到 MFC 窗口中

    背景 有一个现存的 MFC 项目,需要在里面添加新的 UI 界面,使用 MFC 开发太费劲,完全使用 WPF 再重写一遍,时间上不允许。...为了避免初始化 WPF 窗口时,在系统任务栏上闪现 WPF 窗口的标题,可以在 WPF 中设置 ShowInTaskbar="False" #include "CHostWPFWnd.h"#include...MFC + .NET Framework WPF 方案的问题 1 需要将现有 MFC 项目修改成 C++/CLI 项目(添加托管运行时支持) 这个需要根据实际情况,或许修改之后会有其它影响 2 在部分电脑上...Library 通过上面的代码,其实可以看到,将 WPF 窗口嵌入到 MFC 中,重点就是拿到 WPF 窗口的句柄,然后使用 Windows API 就可以将窗口嵌入了...这部分代码,其实可以在 C#/WPF 项目中直接实现,避免在 C++/CLI 中间层写太多代码(因为不习惯写 C++)。

    15010

    C#学习笔记系列之HelloWorld入门001

    背景介绍 在我的工作中需要对C#的一些问题进行攻克,所以我需要学习C#,在此我也分享我的笔记,一方面能记录知识点,另一方面也可以丰富社区的文档。...C#主要有三种应用,分别是console,wpf,windows form,针对这三种应用,我逐个的去攻克,然后能做一些简单的应用,在这一系列的文章里,我分别介绍这三种应用。...类 HelloWorld 包含了程序使用的数据和方法声明。类一般包含多个方法。方法定义了类的行为。在这里,HelloWorld 类只有一个 Main 方法。...WriteLine 是一个定义在 System 命名空间中的 Console 类的一个方法。该语句会在屏幕上显示消息 "Hello, World!"。...从这里开始,我们分别编写console,wpf,windows form的hello world程序,在编写程序之前,我们需要先使用vs2017安装好C#环境。

    1.2K30

    使用 WPF 开发一个 Windows 屏幕保护程序

    使用 WPF 开发一个 Windows 屏幕保护程序 2018-12-22 02:24 最近有小伙伴问我如何可以让 Windows 静置一段时间不操作之后...为了方便截图,我调了下窗口大小。实际上本应该是 Visual Studio 创建的空 WPF 程序的默认大小。 处理屏幕保护程序参数 我的屏幕保护程序是一个非常简单的程序,几乎就是默认的模板。...实际上屏幕保护程序开始和预览是不同的。预览的时候,只会启动你的程序;而实际开始的时候,Windows 会先为你创建一个白色的背景,覆盖所有的屏幕,然后你的屏幕保护程序窗口显示在那个白色的背景之上。...请预防一些坑 你可能会发现 Windows 自带的屏幕保护程序在 C:\Windows\System32 文件夹中。但!那不是你放屏幕保护程序的地方!...如果把你的屏幕保护程序拷贝到那个 Windows 的受信任目录下,你的程序是无法运行起来的。正确的做法,是右键,使用 “安装” 选项进行安装。

    1.4K20

    将 UWP 的有效像素(Effective Pixels)引入 WPF

    一个屏幕上的按钮和另一个屏幕上的按钮哪个更大呢?...如果我们说 A 按钮比 B 按钮在宽度上占用的显示器像素个数更多,我们也可以拿放大镜去屏幕上一个点一个点地数——当然,各种截图工具已经在最佳分辨率下具备数像素个数的功能了(这里一定要突出最佳分辨率)。...当我们说按钮的有效像素宽度为 200 时,指的是你在 WPF 的 XAML 或 C# 代码中写下了 Width="200"。...Windows 操作系统上支持的最低 DPI 设置只能是 96 了,不能再低;以至于后者实际上在相同观看距离上比前者显示的界面元素的物理尺寸会大很多。...这也是为什么我们经常能发现有些笔记本上的图标和字体大小被默认设置得小得可怜,或者超大屏幕设备上文字小得远处看不清的原因。

    1.5K21

    打造极致工作环境:开源项目助你效率腾飞 | 开源专题 No.91

    等来阻止广告、追踪器、虚拟货币挖矿程序、弹窗广告等。...可帮助处理日常开发任务,如格式化 JSON、比较文本和测试正则表达式。 拥有智能检测功能,可自动识别最适合处理 Windows 剪贴板数据的工具。 支持紧凑悬浮窗口模式,并允许同时使用多个应用实例。...可以通过 Windows 资源管理器上下文菜单进行文件转换和压缩 支持多种语言本地化 使用了多个中间件,如 ffmpeg、ImageMagick、Ghostscript 等 xM4ddy/OFGBhttps...该项目的主要功能、关键特性、核心优势包括: 使用 Windows 注册表更改来禁用 Windows 11 各处的广告 使用 C# 和 WPF 编写 可以通过 GitHub 讨论添加新的注册表键值 CapSoftware...可以轻松、即时地进行屏幕共享。 提供视频消息功能,可以录制、编辑和分享视频。 使用 Rust、React (Next.js)、TypeScript 等技术构建,并采用 Turborepo 架构。

    15310

    开源C# WPF控件库强力推荐

    开源C# WPF控件库及项目推荐 本系列已介绍四款开源C# WPF控件库,其中一款国外的,另三款是国内的,大家如有比较好的开源C# WPF控件库,欢迎向Dotnet9推荐(公众号无留言功能,可在本站留言推荐.../2180.html[1] Github地址: https://github.com/MaterialDesignInXAML/MaterialDesignInXamlToolkit[2] 看star和fork...量,就知道有多优秀了: Github项目情况 放上官方Demo截图: 控件库Demo 该库控件种类繁多,主题也丰富,下面是依据此库开源的一个WPF开源项目《Accelerider.Windows[3...]》: 开源WPF项目:Accelerider.Windows 2、Panuon.UI.Silver 本站详细介绍网址:https://dotnet9.com/2285.html[4] Github地址...WPF控件库,欢迎向站长留言。

    2.3K20

    Windows中在C#中使用Dapper和Mysql.Data库连接MySQL数据库

    Windows中在C#中使用Dapper和Mysql.Data库连接MySQL数据库 在Windows中使用C#连接Mysql数据库比较简单,可以直接使用MySql.Data库,目前最新版本为:8.3.0...当然也可以结合MySql.Data和Dapper库一起使用,目前Dapper的最新版本为:2.1.35。...Dapper是一款轻量级ORM工具,是一个简单的.NET对象映射器,在速度上几乎与使用原始ADO.NET数据读取器的速度一样快。ORM是一个对象关系映射器,它负责数据库和编程语言之间的映射。...一、使用Mysql.Data和Dapper来操作Mysql数据库 准备条件: (1)、OS:Windows 10或Windows11 (2)、Visual Stuidio 2022 (3)、MySQL...:mysql-installer-web-community-8.0.36.0.msi,并采用C# .Net WinForm窗体程序作为演示示例,我们展示如何使用Mysql.Data和Dapper连接MySql

    59300

    记腾讯微信输入法导致 WPF 应用卡住 窗口无法激活和显示

    本文记录我远程一位老师的设备,这位老师使用的是 Win7 Sp1 系统,现象是 WPF 应用的窗口无法激活,在 user32 的 SetForegroundWindow 或 NtUserShowWindow...System.Windows.Window.ShowHelper(object booleanBox = false) 行 3293 C# PresentationFramework.dll!...System.Windows.Window.Hide() 行 1358 C# 业务代码 堆栈2: > user32.dll!...System.Windows.Window.Activate() 行 1467 C# 业务代码 从进程模块上可以看到有微信输入法的以下模块注入: C:\Program Files\Tencent\WeType...解决方法: 卸载腾讯微信输入法 卸载完成之后,重启进程即可修复 相关问题: 记微信截图导致 WPF 应用卡住 窗口无法激活问题 更多技术博客,请参阅 博客导航

    7610

    总结一些我在开发WPF时常用的工具

    实时可视化树和实时属性资源管理器 开发者可以使用“实时可视化树”和“实时属性资源管理器”实时地查看正在运行的XAML代码。...比起dnSpy和JustDecompile,我更喜欢ILSpy,因为有很多BAML只有ILSpy能反编译出来,例如System.Windows.Controls.Ribbon.dll(见下面截图)。...虽然现在Visual Studio也可以做到差不多的功能,但Snoop依然是我最喜欢使用的WPF工具之一。 在以前我还喜欢用XAML Spy,可惜那个软件停止更新了。...小规模的程序用不上,但一旦资源和资源文件达到一定数量管理这些资源将十分痛苦,这时候ResXManager就必不可少。 ?...9.结语 这篇文章主要介绍我开发WPF时常用的工具,其它还有些VB.NET To C#的代码转换器、SVG TO XAML、和PNG TO ICO等在线工具,都是用到时再网上搜的。

    3.3K30

    探索Avalonia:C#跨平台UI框架的力量

    在本文中,我们将深入了解 Avalonia 是什么,它与 WPF 的区别,以及它的 UI 绘制引擎和原理、优点,以及一个简单的示例代码。 Avalonia 是什么?...借助 Avalonia,开发人员可以使用 XAML 和 C# 来创建应用程序,而这些应用程序可以在 Windows、Linux 和 macOS 等多个操作系统上无缝运行。...Avalonia 与 WPF 区别 虽然 Avalonia 和 WPF(Windows Presentation Foundation)都是 UI 框架,但它们之间存在一些重要的区别: 跨平台性:WPF...依赖性:WPF 是依赖于 Windows 平台的特定组件和库的,而 Avalonia 尽可能地避免了对特定平台的依赖,使得应用程序更容易移植和部署。 开源性:Avalonia 是一个完全开源的项目。...当开发人员使用 XAML 描述用户界面时,Avalonia 将这些 XAML 文件解析成 UI 元素树,并使用 SkiaSharp 来将这些 UI 元素绘制到屏幕上。

    4.5K10

    一款基于Fluent设计风格、现代化的WPF UI控件库

    前言 今天大姚给大家分享一款基于Fluent设计风格、开源(MIT License)、现代化的WPF UI控件库,它提供直观的设计、主题、导航和全新的沉浸式控件,全部都是原生且无缝地集成在一起:WPF...WPF介绍 WPF 是一个强大的桌面应用程序框架,用于构建具有丰富用户界面的 Windows 应用。...它提供了灵活的布局、数据绑定、样式和模板、动画效果等功能,让开发者可以创建出吸引人且交互性强的应用程序。 项目源代码 Wpf.Ui:允许在应用程序中使用所有功能的库(核心功能类库)。...项目演示截图 项目源码地址 更多项目实用功能和特性欢迎前往项目开源地址查看,别忘了给项目一个Star支持。...该项目已收录到C#/.NET/.NET Core优秀项目和框架精选中,关注优秀项目和框架精选能让你及时了解C#、.NET和.NET Core领域的最新动态和最佳实践,提高开发工作效率和质量。

    28010

    一款简单漂亮的WPF UI - AduSkin

    前言 经常会有同学会问,有没有好看简单的WPF UI库推荐的。今天就给大家推荐一款简单漂亮的WPF UI,融合多个开源框架组件:AduSkin。 WPF是什么?...WPF 是一个强大的桌面应用程序框架,用于构建具有丰富用户界面的 Windows 应用。它提供了灵活的布局、数据绑定、样式和模板、动画效果等功能,让开发者可以创建出吸引人且交互性强的应用程序。...AduSkin项目介绍 一款简单漂亮的WPF UI,融合多个开源框架组件,为个人定制的UI,可供学者参考和使用。 AduSkin使用 在Nuget 搜索"AduSkin" 可直接导包使用。 ...具体使用请参考 AduSkin.Demo: 项目部分截图 项目源码地址 更多项目实用功能和特性欢迎前往项目开源地址查看,别忘了给项目一个Star支持。...https://github.com/aduskin/AduSkin 优秀项目和框架精选 该项目已收录到C#/.NET/.NET Core优秀项目和框架精选中,关注优秀项目和框架精选能让你及时了解C

    54330
    领券