C#/WPF 自制截圖工具

? ? ? ? 在日常使用電腦辦公時,我們經常遇到需要截圖然后保存圖片,我們往往需要借助安裝截圖工具才能實現,現在我們通過C#自制截圖工具,也能夠輕松進行截圖。

我們可以通過C#調用WindousAPI來實現截圖,實例代碼如下:

/// <summary>/// 調用API函數獲取整個屏幕的圖像/// </summary>/// <returns></returns>[DllImport("user32.dll", EntryPoint = "GetDesktopWindow")]private static extern IntPtr GetDesktopWindow();[DllImport("user32.dll", EntryPoint = "GetWindowDC")]private static extern IntPtr GetWindowDC(IntPtr hwnd);[DllImport("gdi32.dll", EntryPoint = "BitBlt")]private static extern int BitBlt(IntPtr hDestDC,int x,int y,int nWidth,int nHeight,IntPtr hSrcDC,int xSrc,int ySrc,int dwRop);/// <summary>/// 截取整個屏幕的圖像/// </summary>/// <returns></returns>public static Bitmap CopyFromScreen(){int width = (int)SystemParameters.PrimaryScreenWidth;int height = (int)SystemParameters.PrimaryScreenHeight;Bitmap newBitmap = new Bitmap(width, height);Graphics g = Graphics.FromImage(newBitmap);IntPtr DeskHwnd = GetWindowDC(GetDesktopWindow());IntPtr Ghwnd = g.GetHdc();BitBlt(Ghwnd, 0, 0, width, height, DeskHwnd, 0, 0, 13369376);g.ReleaseHdc(Ghwnd);CopyHelper.newBitmap = newBitmap;return newBitmap;}

實例鏈接:https://download.csdn.net/download/lvxingzhe3/89505005

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/37773.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/37773.shtml
英文地址,請注明出處:http://en.pswp.cn/web/37773.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

AI基本概念(人工智能、機器學習、深度學習)

人工智能 、 機器學習、 深度學習的概念和關系 人工智能 &#xff08;Artificial Intelligence&#xff09;AI- 機器展現出人類智慧機器學習 &#xff08;Machine Learning) ML, 達到人工智能的方法深度學習 &#xff08;Deep Learning&#xff09;DL,執行機器學習的技術 從范圍…

算法 —— 滑動窗口

目錄 長度最小的子數組 無重復字符的最長子串 最大連續1的個數 將x減到0的最小操作數 找到字符串中所有字母異位詞 長度最小的子數組 sum比target小就進窗口&#xff0c;sum比target大就出窗口&#xff0c;由于數組是正數&#xff0c;所以相加會使sum變大&#xff0c;相減…

關于redis的運維面試題-1

1. 什么是Redis&#xff1f; Redis&#xff08;Remote Dictionary Server&#xff09;是一個開源的內存數據結構存儲&#xff0c;通常用作數據庫、緩存和消息代理。它支持多種數據結構&#xff0c;如字符串&#xff08;strings&#xff09;、哈希&#xff08;hashes&#xff0…

大二暑假 + 大三上

希望&#xff0c;暑假能早睡早起&#xff0c;胸圍達到 95&#xff0c;腰圍保持 72&#xff0c;大臂 36&#xff0c;小臂 32&#xff0c;小腿 38&#x1f36d;&#x1f36d; 目錄 &#x1f348;暑假計劃 &#x1f339;每周進度 &#x1f923;寒假每日進度&#x1f602; &…

DiskGeniusV5.6.0.1565發布!

DiskGenius是一款功能強大的磁盤管理和數據恢復工具&#xff0c;V5.6.0.1565上線。新版本變化比較大&#xff0c;增加新的功能&#xff0c;修正已經問題&#xff0c;值得試一下。提醒大家&#xff0c;磁盤管理軟件涉及數據安全&#xff0c;請始終使用最新版本&#xff01; 下面…

JS hook

參照&#xff1a; JS 逆向之 Hook JS Hook 與 過 debugger 一、常用Hook 1. eval (function() {let _eval eval;eval function(val) {if (val.indexof(debugger) -1) {_eval_cache(obj);}} })(); 2. JSON.parse() (function () {var parse_ JSON.parse;JSON.parse …

C++ initializer_list類型推導

目錄 initializer_list C自動類型推斷 auto typeid decltype initializer_list<T> C支持統一初始化{ }&#xff0c;出現了一個新的類型initializer_list<T>&#xff0c;一切類型都可以用列表初始化。提供了一種更加靈活、安全和明確的方式來初始化對象。 class…

IO-Link OD介紹

IO-Link OD&#xff08;On-request Data&#xff0c;按需數據&#xff09;是IO-Link通信中的一種重要數據類型&#xff0c;主要用于參數讀寫、指令交互、事件上傳等動作。以下是關于IO-Link OD的結構、構成以及功能使用的詳細說明&#xff1a; 結構與構成 定義&#xff1a;OD…

堆排序(Heap Sort)

堆排序是一種高效的排序算法&#xff0c;它利用了堆的數據結構來實現。堆是一種特殊的完全二叉樹&#xff0c;分為最大堆和最小堆兩種類型。在最大堆中&#xff0c;父節點的值大于等于其子節點的值&#xff1b;而在最小堆中&#xff0c;父節點的值小于等于其子節點的值。 堆排…

【C命名規范】遵循良好的命名規范,提高代碼的可讀性、可維護性和可復用性

/******************************************************************** * brief param return author date version是代碼書寫的一種規范 * brief &#xff1a;簡介&#xff0c;簡單介紹函數作用 * param &#xff1a;介紹函數參數 * return&#xff1a;函數返回類型說明 * …

同一個excel表格,為什么在有的電腦上會顯示#NAME?

一、哪些情況會產生#NAME?的報錯 1.公式名稱拼寫錯誤 比如求和函數SUM&#xff0c;如果寫成SUN就會提示#NAME&#xff1f;報錯。 2.公式中的文本值未添加雙引號 如下圖&#xff1a; VLOOKUP(丙,A:B,2,0) 公式的計算結果會返回錯誤值#NAME?&#xff0c;這是因為公式中文本…

【PLC】三菱PLC如何和匯川伺服實現485通信

前言 一開始選用的是匯川SV660P脈沖型伺服&#xff0c;由于生產需求需要對伺服的個別參數進行讀取和寫入操作&#xff0c;但是SV660P并不支持這種情況&#xff0c;因此需要使用485通信來滿足。PLC這邊選用的是三菱FX5U。 開始 1、首先準備按照下圖的引腳提示準備好一根帶屏蔽…

全志H616交叉編譯工具鏈的安裝與使用

交叉編譯的概念 1. 什么是交叉編譯&#xff1f; 交叉編譯是指在一個平臺上生成可以在另一個平臺上運行的可執行代碼。例如&#xff0c;在Ubuntu Linux上編寫代碼&#xff0c;并編譯生成可在Orange Pi Zero2上運行的可執行文件。這個過程是通過使用一個專門的交叉編譯工具鏈來…

(七)glDrawArry繪制

幾何數據&#xff1a;vao和vbo 材質程序&#xff1a;vs和fs(頂點著色器和片元著色器) 接下來只需要告訴GPU&#xff0c;使用幾何數據和材質程序來進行繪制。 #include <glad/glad.h>//glad必須在glfw頭文件之前包含 #include <GLFW/glfw3.h> #include <iostrea…

程序員接單服務話術

進入群聊開始服務時&#xff1a; 尊敬的客戶您好&#xff0c;我程序員&#xff1a;xx 很榮幸為您服務 我擅長xx領域 接下來我們一起對接下詳細需求&#xff0c;我將根據您的任務需求難度給您匯報開發所需時長及報價。預祝我們合作愉快。 報價后且客戶接受時&#xff1a; 您好…

PostgreSQL的學習心得和知識總結(一百四十七)|深入理解PostgreSQL數據庫之transaction chain的使用和實現

目錄結構 注&#xff1a;提前言明 本文借鑒了以下博主、書籍或網站的內容&#xff0c;其列表如下&#xff1a; 1、參考書籍&#xff1a;《PostgreSQL數據庫內核分析》 2、參考書籍&#xff1a;《數據庫事務處理的藝術&#xff1a;事務管理與并發控制》 3、PostgreSQL數據庫倉庫…

2024年文化傳播與對外交流國際學術會議(ICCCFE 2024)

2024年文化傳播與對外交流國際學術會議&#xff08;ICCCFE 2024&#xff09; 2024 International Conference on Cultural Communication and Foreign Exchange(ICCCFE 2024) 會議簡介&#xff1a; 2024年文化傳播與對外交流國際學術會議&#xff08;ICCCFE 2024&#xff09;定…

clion開發51 沒有創建成功可能是Clion版本問題

安裝插件 PlatformlO for CLion 進入這個網站下載get-platformio.py https://docs.platformio.org/en/latest/core/installation/methods/installer-script.html#local-download-macos-linux-windows 點擊 Installation Methods 選擇 Local Download (macOS/Linux/Windows) 點…

linux指令gzip

gzip 是 Linux 系統中廣泛使用的一個文件壓縮和解壓縮程序。它使用 Lempel-Ziv 編碼&#xff08;LZ77&#xff09;和 Huffman 編碼的組合來壓縮文件&#xff0c;減少磁盤使用空間和網絡傳輸時間。以下是對 gzip 命令的一些基本使用說明和示例&#xff0c;這些示例旨在幫助你了解…

小阿軒yx-案例:MySQL主從復制與讀寫分離

小阿軒yx-案例&#xff1a;MySQL主從復制與讀寫分離 案例分析 概述 實際生產環境中 如果對數據庫讀和寫都在同一個數據庫服務器中操作&#xff0c;無論在安全性、高可用性還是高并發等各個方面都完全不能滿足實際需求一般都是通過主從復制&#xff08;Master-Slave&#xf…