亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#截圖程序類似騰訊QQ截圖實現代碼

2020-01-24 03:37:41
字體:
來源:轉載
供稿:網友

最近把以前制作的截圖程序重新寫了一下動了一個大手術 高質量仿照的TX的截圖程序

先看幾個效果圖

貌似圖被和諧了

拖動過程中顯示當前鼠標下一小塊的圖像信息 尺寸、顏色信息的  注意 這里顏色是用的ARGB 本來截圖的話RGB就夠了 可是我把那個做成了控件 不僅截圖可用 其他地方也可用作圖像的選取 具體看代碼就知道了


貌似圖片被和諧了

并且我還加了一個可以截圖的同時把鼠標也捕獲下來 現在看到的是我自己的截圖程序 那個工具條啥的 是從TX的截圖程序上面拔下來的


貌似圖片被和諧了

上面是幾個工具條上的工具的三種粗細型號的展示 看到的藍色的粗的刷筆 本來想的不應該是這個效果的 應該是顏色填充均勻的那種 但是仔細一想代碼中用的是DrawLine(P,PointLast,PointCurrent);這種方式來畫的自由線條 如果是一個像素的沒什么問題 粗點的就是上面看到的那種效果 也就是由許多小線段拼接出來的自由線條而每個線段兩端都是方的所以線段與線段之間的接縫處 可能就有問題 反正就那個意思 你懂得  不過再仔細一想雖然不是想要的效果但卻意外的出現了 蠟筆的效果 果斷也就不改了這樣也不錯



同樣的具有自動捕獲窗體邊框的功能


圖片貌似被和諧了

使用也非常簡單 這個截圖的功能寫到了一個dll中 引用名稱空間 然后FrmCapture 就是截圖的了給了他幾個屬性 也就是上面看到的

同時在拖動過程中可以通過鍵盤 wasd 四個鍵來控制鼠標精確移動

操作方式也和TX的一樣

右鍵鼠標 如果有選擇的區域則取消選擇的區域   沒有則退出截圖

雙擊將選擇的區域復制到剪切板

整個思路也和前面幾篇文章中提到的一樣 只是在代碼層面上動了一個大手術 因為原來寫的主要是凸顯那個自動捕獲窗體的功能

復制代碼 代碼如下:

//根據鼠標位置找尋窗體平繪制邊框
private void FoundAndDrawWindowRect() {
Win32.LPPOINT pt = new Win32.LPPOINT();
pt.X = MousePosition.X; pt.Y = MousePosition.Y;
IntPtr hWnd = Win32.ChildWindowFromPointEx(Win32.GetDesktopWindow(), pt,
Win32.CWP_SKIPINVISIBL | Win32.CWP_SKIPDISABLED);
if (hWnd != IntPtr.Zero) {
IntPtr hTemp = hWnd;
while (true) { //循環的根據坐標向內部找尋子窗體 直到無法找到位置
Win32.ScreenToClient(hTemp, out pt);
hTemp = Win32.ChildWindowFromPointEx(hTemp, pt, Win32.CWP_All);
if (hTemp == IntPtr.Zero || hTemp == hWnd)
break;
hWnd = hTemp;
pt.X = MousePosition.X; pt.Y = MousePosition.Y; //坐標還原為屏幕坐標
}
Win32.LPRECT rect = new Win32.LPRECT();
Win32.GetWindowRect(hWnd, out rect);
imageProcessBox1.SetSelectRect(
new Rectangle(rect.Left, rect.Top,
rect.Right - rect.Left, rect.Bottom - rect.Top));
}
}

同前幾篇文章一樣是通過禁用自身窗體然后通過ChildWindowFromPointEx函數來根據鼠標位置 獲得鼠標下面的窗體 因為在獲取的時候 鼠標下面是截圖程序的一個窗體 所以在找尋窗體的時候得把自己忽略掉 而ChildWindowFromPointEx在查找過程中可以忽略禁用的窗體 所以講自己禁用就到到目的了 然后通過Hook來監視鼠標的行為 來恢復禁用的窗體

復制代碼 代碼如下:

private void m_MHook_MHookEvent(object sender, MHookEventArgs e) {

........

//鼠標點下恢復窗體禁用
if (e.MButton == ButtonStatus.LeftDown || e.MButton == ButtonStatus.RightDown) {
this.Enabled = true;
imageProcessBox1.IsDrawOperationDot = true;
}

........
}

還有一點 就只捕獲鼠標的時候
復制代碼 代碼如下:

//獲取桌面圖像
private Bitmap GetScreen() {
Bitmap bmp = new Bitmap(Screen.PrimaryScreen.Bounds.Width,
Screen.PrimaryScreen.Bounds.Height);
if (this.isCaptureCursor) { //是否捕獲鼠標
//如果直接將捕獲當的鼠標畫在bmp上 光標不會反色 指針邊框也很濃 也就是說
//盡管bmp上繪制了圖像 繪制鼠標的時候還是以黑色作為鼠標的背景 然后在將混合好的鼠標繪制到圖像 會很別扭
//所以 干脆直接在桌面把鼠標繪制出來再截取桌面
using (Graphics g = Graphics.FromHwnd(IntPtr.Zero)) { //傳入0默認就是桌面 Win32.GetDesktopWindow()也可以
Win32.PCURSORINFO pci;
pci.cbSize = System.Runtime.InteropServices.Marshal.SizeOf(typeof(Win32.PCURSORINFO));
Win32.GetCursorInfo(out pci);
if (pci.hCursor != IntPtr.Zero) {
Cursor cur = new Cursor(pci.hCursor);
g.CopyFromScreen(0, 0, 0, 0, bmp.Size); //在桌面繪制鼠標前 先在桌面繪制一下當前的桌面圖像
//如果不繪制當前桌面 那么cur.Draw的時候會是用歷史桌面的快照 進行鼠標的混合 那么到時候混出現底色(測試中就是這樣的)
cur.Draw(g, new Rectangle((Point)((Size)MousePosition - (Size)cur.HotSpot), cur.Size));
}
}
}
//做完以上操作 才開始捕獲桌面圖像
using (Graphics g = Graphics.FromImage(bmp)) {
g.CopyFromScreen(0, 0, 0, 0, bmp.Size);
}
return bmp;
}

我總感覺上面的方式很別扭 可是目前我也就只能通過這種方式去捕獲鼠標了

有興趣的就自己改造吧 導入那個dll自己想咋改造就咋改造

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
清纯唯美日韩制服另类| 欧美亚洲激情视频| 欧美国产亚洲精品久久久8v| 国产精品视频一区二区高潮| 久久精品国产成人精品| 亚洲色在线视频| 精品成人国产在线观看男人呻吟| 亚洲国产精品成人av| 欧美一级视频免费在线观看| 91精品国产777在线观看| 日本欧美精品在线| 大荫蒂欧美视频另类xxxx| 91久久久久久久一区二区| 久久亚洲精品视频| 国产97在线亚洲| 中文国产亚洲喷潮| 丝袜亚洲欧美日韩综合| 国产精品亚洲视频在线观看| 日韩av三级在线观看| 久热精品视频在线观看一区| 国产欧美一区二区三区在线看| 日韩视频免费大全中文字幕| 国产视频观看一区| 欧美日韩国产激情| 欧美精品在线免费观看| 欧美日韩aaaa| 久久99视频精品| 欧美性猛交xxx| 国产一区二区香蕉| 欧美性感美女h网站在线观看免费| 伊人伊成久久人综合网站| 亚洲第一福利在线观看| 精品美女国产在线| 久久99久久99精品免观看粉嫩| 国产精品中文字幕在线观看| 欧美日韩国产中文字幕| 亚洲成人xxx| 日韩精品免费在线视频| 亚洲第一精品夜夜躁人人躁| 成人情趣片在线观看免费| 精品二区三区线观看| 欧美亚洲午夜视频在线观看| 欧美成人中文字幕| 日韩av日韩在线观看| 国产精品吹潮在线观看| 亚洲精品乱码久久久久久按摩观| 日本欧美黄网站| 亚洲www永久成人夜色| 51ⅴ精品国产91久久久久久| 狠狠躁夜夜躁人人爽天天天天97| 亚洲图片在线综合| 欧美天天综合色影久久精品| 午夜精品久久久久久久99热浪潮| 成人欧美一区二区三区在线湿哒哒| 亚洲va男人天堂| 国产精品国产三级国产aⅴ浪潮| 成人a级免费视频| 国产精品亚洲аv天堂网| 成人网址在线观看| 亚洲成人av在线| 97精品国产97久久久久久| 国产福利视频一区| 亚洲精品久久久久久久久久久久| 亚洲天堂成人在线视频| 亚洲色图校园春色| 欧美性受xxxx白人性爽| 欧美国产日韩一区二区在线观看| 亚洲精品久久久久久久久久久| 国产精品久久久久久av下载红粉| 97视频色精品| 精品久久久久久久久久久久久| 国产精品中文字幕久久久| 久久久噜噜噜久久久| 欧美午夜片欧美片在线观看| 国产精品永久免费| 日韩欧美在线观看视频| 亚洲影院色无极综合| 日韩欧美亚洲综合| 欧美日本精品在线| 欧美精品videofree1080p| 欧美性猛交xxxx| 不卡av电影在线观看| 亚洲欧美视频在线| 久久久久免费精品国产| 精品国产成人在线| 亚洲成人久久久| 久久偷看各类女兵18女厕嘘嘘| 国产视频在线观看一区二区| 欧美丝袜一区二区三区| 欧美一区二区三区四区在线| 亚洲成人免费网站| 午夜精品久久久久久99热| 国产精品中文字幕在线| 欧美激情精品久久久久久久变态| 最近2019中文字幕在线高清| 欧美在线视频观看免费网站| 欧洲成人性视频| 亚洲第一区第二区| 欧美交受高潮1| 亚洲2020天天堂在线观看| 欧美另类老肥妇| 最好看的2019的中文字幕视频| 日韩在线免费视频观看| 国外成人在线直播| 亚洲人成电影网站| 97精品一区二区三区| 成人情趣片在线观看免费| 亚洲欧美日韩在线高清直播| 欧美精品18videosex性欧美| 日韩一区二区久久久| 久久综合色88| 欧美与黑人午夜性猛交久久久| 97视频在线看| 日韩国产精品亚洲а∨天堂免| 亚洲xxxxx| 亚洲欧美日韩一区在线| 久久久久久午夜| 亚洲激情视频在线播放| 欧美一区二区三区精品电影| 国产精品入口免费视频一| 欧美韩日一区二区| 亚洲成人av资源网| 国产一区玩具在线观看| 国产丝袜视频一区| 在线精品国产成人综合| 色综合伊人色综合网| 国产精品一区二区久久久| 中文字幕一精品亚洲无线一区| 色综合91久久精品中文字幕| y97精品国产97久久久久久| 91亚洲永久免费精品| 亚洲电影av在线| 国产91ⅴ在线精品免费观看| 91在线免费网站| 国产精品丝袜白浆摸在线| 久久久亚洲精品视频| 国内精品久久久久久久久| 久久成人亚洲精品| 国产盗摄xxxx视频xxx69| 日韩av免费网站| 欧美在线一区二区三区四| 中文字幕视频一区二区在线有码| xvideos成人免费中文版| 国产精品高清免费在线观看| 国产成人av网址| 高清欧美一区二区三区| 中文字幕亚洲一区二区三区五十路| 日韩av手机在线| 亚洲欧洲国产伦综合| 国产精品普通话| 国产欧美一区二区三区在线| 国内精品久久久久伊人av| 伊人久久综合97精品| 久久中文字幕一区| 91热精品视频| 国产综合久久久久久| 日韩在线视频线视频免费网站| 亚洲精品美女久久久| 欧美激情一区二区三级高清视频| 久久在线精品视频| 国产精品日韩欧美| 亚洲黄色有码视频| 日韩视频永久免费观看| 欧美黑人国产人伦爽爽爽|