当前位置: 首页 > 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# 修改…...

明日方舟素材库:从游戏资产到创意引擎的技术解密

明日方舟素材库&#xff1a;从游戏资产到创意引擎的技术解密 【免费下载链接】ArknightsGameResource 明日方舟客户端素材 项目地址: https://gitcode.com/gh_mirrors/ar/ArknightsGameResource 在数字创作的广阔天地中&#xff0c;专业级游戏素材往往被锁在商业游戏的围…...

2026企业数字化必看:实在Agent订单数据处理智能助理实战及ERP自动录入教程

进入2026年&#xff0c;全球企业级自动化市场已完成从“流程驱动”向“智能体&#xff08;Agent&#xff09;驱动”的范式转移。根据Gartner与IDC在2025年底发布的联合报告显示&#xff0c;超过85%的500强企业已在其核心业务流程中部署了具备自主决策能力的数字员工。在这一背景…...

Django 模板(Template):告别硬编码,实现动态 HTML页面

IT策士 10余年一线大厂经验&#xff0c;专注 IT 思维、架构、职场进阶。 当你开始构建一个真正的 Web 应用时&#xff0c;很快就会厌倦这种方式&#xff1a; def home(request):return HttpResponse("<h1>欢迎&#xff0c;张三&#xff01;</h1><p>今天…...

嵌入式扫码模组:POS机核心部件技术解析与选型指南

1. 项目概述&#xff1a;固定式POS机里的“眼睛”与“大脑”如果你拆开过一台超市、便利店或者餐厅里常见的固定式POS机&#xff0c;可能会发现一个有趣的现象&#xff1a;那个用来扫商品条码的“窗口”或“枪口”&#xff0c;其内部结构远比我们想象的要精密。它不是一个简单的…...

如何用LRCGET歌词下载神器一键解决数千首离线音乐歌词同步难题

如何用LRCGET歌词下载神器一键解决数千首离线音乐歌词同步难题 【免费下载链接】lrcget Utility for mass-downloading LRC synced lyrics for your offline music library. 项目地址: https://gitcode.com/gh_mirrors/lr/lrcget 你是否拥有一个庞大的离线音乐库&#x…...

RT-Thread Studio实战:搞定DS18B20温度读取的时序坑(附逻辑分析仪调试实录)

RT-Thread Studio实战&#xff1a;DS18B20温度读取的时序调试与逻辑分析仪应用 嵌入式开发中&#xff0c;单总线器件因其简洁的硬件连接而广受欢迎&#xff0c;但恰恰是这种"简单"往往隐藏着最棘手的调试难题。当你在RT-Thread环境下使用DS18B20温度传感器&#xff0…...

保姆级教程:用命令行搞定npm 2FA配置,告别网页来回跳转

命令行极客指南&#xff1a;npm 2FA全流程自动化实战 每次发布npm包都要掏出手机查验证码&#xff1f;在无头服务器上部署时被2FA卡住&#xff1f;作为命令行重度用户&#xff0c;我们完全可以在终端里完成从启用、日常使用到禁用2FA的全流程。本文将带你用纯CLI方式打通npm双因…...

保姆级教程:用斐讯N1盒子刷Armbian 5.77,打造你的专属Debian服务器(附解决负载过高问题)

斐讯N1盒子改造指南&#xff1a;从电视盒子到高性能家庭服务器的蜕变 在智能家居和个性化网络需求日益增长的今天&#xff0c;拥有一台24小时运行的家庭服务器成为许多技术爱好者的刚需。而斐讯N1盒子凭借其出色的硬件配置和极低的功耗&#xff0c;成为了DIY玩家眼中的"宝…...

基于红外通信的实体寻宝游戏:从MakeCode到CircuitPython的嵌入式开发实践

1. 项目概述&#xff1a;用红外线玩一场实体寻宝游戏如果你手头有几块Adafruit的Circuit Playground Express开发板&#xff0c;除了点亮LED、播放声音这些基础操作&#xff0c;有没有想过用它们来设计一个能跑能藏的实体互动游戏&#xff1f;红外寻宝游戏就是一个绝佳的选择。…...

基于RAG的德国开放数据智能问答助手:从原理到工程实践

1. 项目概述&#xff1a;当德国开放数据遇上GPT最近在折腾一个挺有意思的项目&#xff0c;叫 OpenDataGermanyGPT。光看名字&#xff0c;你可能觉得这又是一个“GPT套壳”应用&#xff0c;但实际玩下来&#xff0c;我发现它的核心价值远不止于此。简单来说&#xff0c;这是一个…...