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

3.【Python】Python3 数据类型转换

第一步&#xff1a;分析与整理数据类型转换1. 数据类型转换概述 数据类型转换分为两种&#xff1a; 隐式类型转换&#xff1a;Python 自动完成&#xff0c;无需干预。显式类型转换&#xff1a;使用内置函数手动转换。2. 隐式类型转换 规则&#xff1a;当不同类型的数据进行运算…...

任务跟踪系统排名怎么看?8款企业常用工具对比

本文将深入对比8款任务跟踪系统和项目管理软件&#xff1a;Worktile、PingCode、Jira、Asana、monday.com、ClickUp、Trello、Microsoft Project。一、任务跟踪系统和项目管理软件有什么区别1、任务跟踪系统解决“事情有没有人跟、有没有进展”任务跟踪系统的核心价值&#xff…...

Allegro铺铜避坑指南:从十字花焊盘到孤铜删除,新手必知的10个实用技巧

Allegro铺铜避坑指南&#xff1a;从十字花焊盘到孤铜删除&#xff0c;新手必知的10个实用技巧 第一次在Allegro中铺铜时&#xff0c;那种手足无措的感觉我至今记忆犹新。面对密密麻麻的参数选项和看似简单的操作背后隐藏的各种"坑"&#xff0c;即使是完成了布局布线的…...

QFN封装工艺深度解析:从结构设计到制程优化的关键考量

1. QFN封装基础认知&#xff1a;为什么它成为现代电子产品的宠儿 第一次接触QFN封装是在2015年设计智能手表项目时&#xff0c;当时为了把主控芯片塞进8mm厚的表壳里&#xff0c;传统QFP封装根本放不下。直到供应商推荐了这颗5x5mm的QFN芯片&#xff0c;才真正体会到"小身…...

告别XDMA限制:用开源Riffa框架在Linux下轻松实现多通道PCIE DMA通信(Kintex-7实测)

突破XDMA瓶颈&#xff1a;开源Riffa框架在Linux下的多通道PCIE DMA实战指南&#xff08;Kintex-7验证&#xff09; 当FPGA开发者面临高速数据采集、实时信号处理或多设备协同工作时&#xff0c;PCIE DMA通道的数量往往成为系统性能的瓶颈。Xilinx官方XDMA方案虽然稳定&#xff…...

三步快速解锁网盘高速下载:LinkSwift直链解析终极指南

三步快速解锁网盘高速下载&#xff1a;LinkSwift直链解析终极指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼…...

多尺度地理加权回归(MGWR)终极指南:从入门到实战的完整教程

多尺度地理加权回归(MGWR)终极指南&#xff1a;从入门到实战的完整教程 【免费下载链接】mgwr Multiscale Geographically Weighted Regression (MGWR) 项目地址: https://gitcode.com/gh_mirrors/mg/mgwr 面对复杂多变的空间数据&#xff0c;传统的地理加权回归(GWR)常…...

Lyrebird常见问题排查手册:解决无法启动和音频延迟的终极方案

Lyrebird常见问题排查手册&#xff1a;解决无法启动和音频延迟的终极方案 【免费下载链接】lyrebird &#x1f99c; Simple and powerful voice changer for Linux, written with Python & GTK 项目地址: https://gitcode.com/gh_mirrors/lyr/lyrebird Lyrebird是一…...

Java后端工程师必备:系统学习大模型应用开发(收藏版)

本文深入探讨了Java后端工程师如何系统性地学习AI应用开发&#xff0c;从基础的CRUD操作到大模型的集成&#xff0c;包括RAG、Tool Calling、MCP、Agent等关键技术。文章强调了AI应用开发不仅是调用大模型接口&#xff0c;而是将大模型能力融入真实业务系统&#xff0c;实现理解…...

终极指南:用foo2zjs驱动100+型号打印机在Linux上完美工作

终极指南&#xff1a;用foo2zjs驱动100型号打印机在Linux上完美工作 【免费下载链接】foo2zjs A linux printer driver for QPDL protocol - copy of http://foo2zjs.rkkda.com/ 项目地址: https://gitcode.com/gh_mirrors/fo/foo2zjs 核心关键词&#xff1a;foo2zjs Li…...