当前位置: 首页 > news >正文

.NET Core全屏截图,C#全屏截图

.NET Core全屏截图,C#全屏截图

使用框架:

  • WPF
  • .NET 8
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Runtime.InteropServices;
using System.IO;namespace WpfAppYolo11_test1.Tool
{/// <summary>/// 屏幕全屏截图/// </summary>public class ScrentCapter{[DllImport("User32.dll", EntryPoint = "GetDC")]private extern static IntPtr GetDC(IntPtr hWnd);[DllImport("gdi32.dll")]public static extern int GetDeviceCaps(IntPtr hdc, int nIndex);const int DESKTOPVERTRES = 117;const int DESKTOPHORZRES = 118;/// <summary>/// 截取电脑全屏图片/// </summary>public static string Screenshot(){// 获取屏幕的尺寸IntPtr hdc = GetDC(IntPtr.Zero);//屏幕宽度int width = GetDeviceCaps(hdc, DESKTOPHORZRES);//屏幕高度int height = GetDeviceCaps(hdc, DESKTOPVERTRES);System.Drawing.Size size = new System.Drawing.Size(){Width = width,Height = height};string filePath = string.Empty;// 创建一个Bitmap对象,用于存储屏幕截图using (Bitmap bitmap = new Bitmap(width, height)){// 创建一个Graphics对象,用于绘制到Bitmap上using (Graphics g = Graphics.FromImage(bitmap)){// 截取屏幕内容到Graphics对象中g.CopyFromScreen(0, 0, 0, 0, size);}// 保存Bitmap为图片文件string dir = Path.Combine(AppContext.BaseDirectory, "screen");if (!Directory.Exists(dir)){Directory.CreateDirectory(dir);}filePath =Path.Combine(dir, $"screen{DateTime.Now.ToString("yyyyMMdd_HHmmssfff")}.png");bitmap.Save(filePath, ImageFormat.Png);}return filePath;}}
}

相关文章:

.NET Core全屏截图,C#全屏截图

.NET Core全屏截图&#xff0c;C#全屏截图 使用框架&#xff1a; WPF.NET 8 using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Imaging; using System.Linq; using System.Text; using System.Threading.Tasks; using System.W…...

ajax之生成一个ajax的demo示例

目录 一. node.js和express ​二. 使用express创建后端服务 三. 创建前端 一. node.js和express ajax是前端在不刷新的情况下访问后端的技术&#xff0c;所以首先需要配置一个后端服务&#xff0c;可以使用node.js和express。 首先生成一个空项目&#xff0c;新建main目录…...

软件工程笔记下

从程序到软件☆ 章节 知识点 概论☆ 软件的定义&#xff0c;特点&#xff0c;生存周期。软件工程的概论。软件危机。 1.☆软件&#xff1a;软件程序数据文档 &#xff08;1&#xff09;软件&#xff1a;是指在计算机系统的支持下&#xff0c;能够完成特定功能与性能的包括…...

【自学笔记】Numpy基础知识点总览-持续更新

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 Numpy基础知识点总览目录1. 简介Numpy是什么为什么使用Numpy 2. 数组对象&#xff08;ndarray&#xff09;创建数组数组的属性数组的形状操作 3. 数组的基本操作数组…...

大模型gpt结合drawio绘制流程图

draw下载地址 根据不同操作系统选择不同的安装 截图给gpt 并让他生成drawio格式的&#xff0c;选上推理 在本地将生成的内容保存为xml格式 使用drawio打开 保存的xml文件 只能说效果一般。...

3.8【Q】cv

这个draw_line函数的逻辑和功能是什么&#xff1f;代码思路是什么&#xff1f;怎么写的&#xff1f; 这个t是什么&#xff1f;t.v[0]和t.v[1],[2]又是什么&#xff1f; void rst::rasterizer::draw(rst::pos_buf_id pos_buffer, rst::ind_buf_id ind_buffer, rst::Primitive ty…...

STM32F10XXX标准库函数及外设结构体

时钟 APB1 void RCC_APB1PeriphClockCmd(uint32_t RCC_APB1Periph, FunctionalState NewState)&#xff1a;使能或失能 APB1 时钟 参数 可赋值 描述 RCC_APB1Periph RCC_APB1Periph_TIM2 RCC_APB1Periph_TIM3 RCC_APB1Periph_TIM4 RCC_APB1Periph_TIM5 RCC_APB1Peri…...

计算机毕业设计SpringBoot+Vue.js车辆管理系统(源码+文档+PPT+讲解)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

剖析Manus:AI领域的创新先锋还是虚假泡沫?

在AI技术迅猛发展的当下&#xff0c;新的智能体不断涌现&#xff0c;其中Manus的出现可谓是一石激起千层浪。近期&#xff0c;OpenManus以极快速度复刻Manus&#xff0c;引发了广泛关注&#xff0c;但这也让我们更有必要深入剖析Manus&#xff0c;探究它究竟是货真价实的创新突…...

编程考古-Borland历史:《.EXE Interview》对Anders Hejlsberg关于Delphi的采访内容(中)

为了纪念Delphi在2002年2月14日发布的25周年(2020.2.12),这里有一段由.EXE杂志编辑Will Watts于1995年对Delphi首席架构师Anders Hejlsberg进行的采访记录。在这次采访中,Anders讨论了Delphi的设计与发展,以及即将到来的针对Windows 95的32位版本。 Q. 编译器引擎本身是用…...

GB28181视频平台LiveGBS在设置公网IP收流时,如何自定义修改收流端口区间

LiveGBS GB28181流媒体服务在接收视频的时候默认是使用30000-30249&#xff0c; webrtc流播放端口区间默认是UDP的30250-30500区间。有些网络环境不方便开放这么大的端口区间&#xff0c;下面介绍下如何修改配置这个区间。 从页面上修改这个区间&#xff0c;端口区间尽量设置大…...

【ubuntu20】--- 搭建 gerrit 最新最详细

在编程的艺术世界里&#xff0c;代码和灵感需要寻找到最佳的交融点&#xff0c;才能打造出令人为之惊叹的作品。而在这座秋知叶i博客的殿堂里&#xff0c;我们将共同追寻这种完美结合&#xff0c;为未来的世界留下属于我们的独特印记。 【ubuntu20】--- 搭建 gerrit 最新最详细…...

HCIA-DHCP

1、定义&#xff1a;DHCP即动态主机配置协议&#xff0c;通过C/S模型架构&#xff0c;无需主机配置IP地址&#xff0c;自动分配网络配置参数的网络协议。 2、作用 对比项目无 DHCP有 DHCP配置难度配置多&#xff0c;容易出错自动为客户端分配 IP 地址及其他网络配置参数&…...

wxWidgets GUI 跨平台 入门学习笔记

准备 参考 https://wiki.wxwidgets.org/Microsoft_Visual_C_NuGethttps://wiki.wxwidgets.org/Tools#Rapid_Application_Development_.2F_GUI_Buildershttps://docs.wxwidgets.org/3.2/https://docs.wxwidgets.org/latest/overview_helloworld.htmlhttps://wizardforcel.gitb…...

OmniParser技术分析(一)

1.引言 通过上篇文章介绍 OmniParser:下一代纯视觉UI自动化测试先驱相信大家已经对OmniParser有初步了解&#xff0c;接下来详细介绍下OmniParser使用了哪些技术模型实现了对UI纯视觉的检测和理解。 2.整体方案 通过阅读OmniParser提供的运行Demo代码知道&#xff0c;其实整…...

什么是hive

Apache Hive 是一个基于 Hadoop 生态系统构建的数据仓库工具&#xff0c;主要用于处理和分析大规模的结构化数据。它允许用户通过类似 SQL 的查询语言&#xff08;HiveQL&#xff09;进行数据操作&#xff0c;而无需直接编写复杂的 MapReduce 程序。以下是 Hive 的核心特点和应…...

PyTorch系列教程:Tensor.view() 方法详解

这篇简明扼要的文章是关于PyTorch中的tensor.view()方法的介绍与应用&#xff0c;与reshape()方法的区别&#xff0c;同时给出示例进行详细解释。 Tensor基础 Tensor(张量)的视图是一个新的Tensor&#xff0c;它与原始Tensor共享相同的底层数据&#xff0c;但具有不同的形状或…...

从零开始了解Manus(文末附教程)

大家好&#xff0c;我是樱木。 《从零开始了解Manus》&#xff0c;这个教程对于想了解 Manus的同学&#xff0c;全部都在里面了&#xff01; Manus 是一款能像真人一样帮你干活的AI助手&#xff0c;运行在云端&#xff0c;不占电脑内存。 它可以自动完成复杂任务&#xff0c…...

不同开发语言之for循环的用法、区别总结

一、Objective-C &#xff08;1&#xff09;标准的c风格 for (int i 0; i < 5; i) {NSLog("i %d", i); } &#xff08;2&#xff09;for in循环。 NSArray *array ["apple", "banana", "orange"]; for (NSString *fruit in …...

CentOS 7 aarch64上制作kernel rpm二进制包 —— 筑梦之路

环境说明 centos 7 aarch64 gcc 8.3.1 kernel 5.4.290 准备编译制作 # 安装必要的工具和包yum install rpm-devel rpmdevtools yum groupinstall "Development Tools"yum install ncurses-devel bc elfutils-libelf-devel openssl-devel # 安装gcc 8.3.1# 修改…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上&#xff0c;你可以使用apt包管理器来安装NFS服务器。打开终端并运行&#xff1a; sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享&#xff0c;例如/shared&#xff1a; sudo mkdir /shared sud…...

django filter 统计数量 按属性去重

在Django中&#xff0c;如果你想要根据某个属性对查询集进行去重并统计数量&#xff0c;你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求&#xff1a; 方法1&#xff1a;使用annotate()和Count 假设你有一个模型Item&#xff0c;并且你想…...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法&#xff0c;用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理&#xff0c;能够自动确定一个阈值&#xff0c;将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心&#xff0c;JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例&#xff1a; 1. onclick - 点击事件 当元素被单击时触发&#xff08;左键点击&#xff09; button.onclick function() {alert("按钮被点击了&#xff01;&…...

基于IDIG-GAN的小样本电机轴承故障诊断

目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) ​梯度归一化(Gradient Normalization)​​ (2) ​判别器梯度间隙正则化(Discriminator Gradient Gap Regularization)​​ (3) ​自注意力机制(Self-Attention)​​ 3. 完整损失函数 二…...

基于Springboot+Vue的办公管理系统

角色&#xff1a; 管理员、员工 技术&#xff1a; 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能&#xff1a; 该办公管理系统是一个综合性的企业内部管理平台&#xff0c;旨在提升企业运营效率和员工管理水…...

STM32---外部32.768K晶振(LSE)无法起振问题

晶振是否起振主要就检查两个1、晶振与MCU是否兼容&#xff1b;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容&#xff08;CL&#xff09;与匹配电容&#xff08;CL1、CL2&#xff09;的关系 2. 如何选择 CL1 和 CL…...

数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !

我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...

springboot 日志类切面,接口成功记录日志,失败不记录

springboot 日志类切面&#xff0c;接口成功记录日志&#xff0c;失败不记录 自定义一个注解方法 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/***…...

前端工具库lodash与lodash-es区别详解

lodash 和 lodash-es 是同一工具库的两个不同版本&#xff0c;核心功能完全一致&#xff0c;主要区别在于模块化格式和优化方式&#xff0c;适合不同的开发环境。以下是详细对比&#xff1a; 1. 模块化格式 lodash 使用 CommonJS 模块格式&#xff08;require/module.exports&a…...