C 中三種截圖方式總結

2021-06-25 23:20:19 字數 2689 閱讀 5069

**:

using system;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.text;

using system.windows.forms;

using system.drawing.imaging;

namespace zhuascreen

[system.runtime.interopservices.dllimportattribute("gdi32.dll")]

privatestatic extern bool bitblt(

intptrhdcdest,                 //目的dc

的控制代碼 

intnxdest,                       //目的圖形的左上角的x座標 

intnydest,                       //目的圖形的左上角的y座標 

intnwidth,                        //目的圖形的矩形寬度 

intnheight,                       //目的圖形的矩形高度 

intptrhdcsrc,                   //源dc的控制代碼 

intnxsrc,                         //源圖形的左上角的x座標 

intnysrc,                          //源圖形的左上角的x座標 

system.int32 dwrop          //光柵操作** 

); privatevoid button1_click(object sender, eventargs e)}}

居然只能把本程式自己的介面截下,我要的是把螢幕截下來,不過有總比沒有好,正好我也不知道怎麼截自己,先放著.後來又發現了乙個截圖的程式:

是在上面修改,其他不變

private voidbutton1_click(object sender, eventargs e)

可是,我多試幾下發現這個程式有點問題,只能截自己左上的開始的乙個螢幕大小的所以右下腳是黑的.我把程式form啟動的位置設在右上腳,不就可以把整個螢幕截下來嗎?暫時勉強算是解決了問題.至於**,當時的我還只能旁觀.

再後來我在一本c#例題書上又碰到回這個問題.我還沒想好怎麼解決上面的問題就眼睜睜的看著別人幫忙給搞定了.

using system;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.text;

using system.windows.forms;

using system.drawing.imaging;

using system.runtime.interopservices;

namespace 圖形圖象

private void btn_capture_click(object sender, eventargs e)

}public class desktopcapture}}

當時發現自己能看懂它了,這也算階段性的進步吧!這個程式明顯比上面兩個更科學的完成了截圖的使命!昨天,我看見一篇文章上不用api截

雖然我最終也沒明白過來他是怎麼實現的不過喚醒了我不用api截圖的意念.早上起來搜了下screen類:

c#中對系統的桌面進行了封裝,即screen類,其中的重要屬性包括顯示的邊界bounds、系統上所有顯示器的陣列allscreens、顯示器的工作區workingarea等。.net framework 2.0中新增加了獲得windows桌面的方法:graphics.copyfromscreen。該方法已過載,有多種呼叫格式。例如:

public void copyfromscreen (

point upperleftsource,         //源矩形左上角的點

point upperleftdestination,    //目標矩形左上角的點

size blockregionsize)          //要傳輸的區域大小

後來,就有了下面的截圖程式:

usingsystem;

using system.collections.generic;

using system.text;

using system.windows.forms;

using system.drawing;

namespace不用api截圖}}

usingsystem;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.text;

using system.windows.forms;

namespace不用api截圖

private void form1_load(object sender, eventargs e)}}

Webview截圖三種方式

第一種方式 通過呼叫webview.capturepicture 得到乙個picture物件,根據影象的寬和高建立乙個bitmap,再建立乙個canvas,繫結bitmap,最後用picture去繪製。獲取picture物件 picture picture wv capture.capturepic...

Webview截圖三種方式

通過呼叫webview.capturepicture 得到乙個picture物件,根據影象的寬和高建立乙個bitmap,再建立乙個canvas,繫結bitmap,最後用picture去繪製。獲取picture物件 picture picture wv capture.capturepicture 得...

C 中三種迴圈總結

一 迴圈語句 當程式中需要不斷的重複執行某個動作,例如 重複輸出1000行 hello,world 如果自己寫一千行cout hello,world 就算複製貼上也得一會時間,這時迴圈語句就能派上大用場了。1.for迴圈 for迴圈使用的基本形式 for 初始化表示式 條件表示式 增量表示式 語句 ...