吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1514|回复: 10
收起左侧

[学习记录] 自己动手开发的小工具 记录编程之路

[复制链接]
sgbyg 发表于 2024-5-24 19:20

发现一个up主使用的工具 里面的图片采集功能挺有意思 作为一名热爱coding的技术小白,我立刻就萌生了自己也动手开发一个类似工具的想法。



[C#] 纯文本查看 复制代码
    void UpdateScreen(object state, EventArgs e) {
		lock (lockObject) {
			if (string.IsNullOrEmpty(textBox1.Text) && string.IsNullOrEmpty(textBox2.Text)) {
				btnStartCapture.Text = "开始截图";
				timer.Tick -= new EventHandler(UpdateScreen);
				BtnStartCapture_Flag = !BtnStartCapture_Flag;
				MessageBox.Show("未选择截图方式", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
				return;
			}
			
			if (isHandleMode){
				RECT rect2;
				GetWindowRect(hWnd, out rect2);
				int width = rect2.Right - rect2.Left;
				int height = rect2.Bottom - rect2.Top;
				
				IntPtr hdcWindow = GetWindowDC(hWnd);
				IntPtr hdcCompatible = CreateCompatibleDC(hdcWindow);
				IntPtr hBitmap = CreateCompatibleBitmap(hdcWindow, width, height);

				SelectObject(hdcCompatible, hBitmap);
				BitBlt(hdcCompatible, 0, 0, width, height, hdcWindow, 0, 0, 0x00CC0020); // CAPTUREBLT flag to capture layered windows

				img = Image.FromHbitmap(hBitmap);

				if (picBox.InvokeRequired) {
					picBox.Invoke((MethodInvoker)delegate {
						picBox.Image = img;
					});
				} else {
					picBox.Image = img;
				}
				
				DeleteObject(hBitmap);
				DeleteDC(hdcCompatible);
				DeleteDC(hdcWindow);
			} else {
				using (Graphics g = Graphics.FromImage(img)) {
					g.CopyFromScreen(Point.Empty, Point.Empty, img.Size);
				}

				if (picBox.InvokeRequired) {
					picBox.Invoke((MethodInvoker)delegate {
						picBox.Image = img;
					});
				} else {
					picBox.Image = img;
				}
			}
			
			filePath = string.Format("images/screenshot_{0}.{1}", captureCount, format);
			img.Save(filePath);
			
			if (captureCount == int.Parse(textBox4.Text)) {
				btnStartCapture.Text = "开始截图";
				timer.Tick -= new EventHandler(UpdateScreen);
				BtnStartCapture_Flag = !BtnStartCapture_Flag;
				MessageBox.Show("已完成", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
			}
            captureCount++;
		}
    }



下载 ---> https://wwz.lanzoue.com/ivvi31zmobze    解压密码为 52pj





免费评分

参与人数 1热心值 +1 收起 理由
安言 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

lastmu 发表于 2024-5-24 19:42
应该是一个连续截图的小工具,挺好。
haoge101 发表于 2024-5-24 20:06
long88888888 发表于 2024-5-24 22:37
本帖最后由 long88888888 于 2024-5-24 22:40 编辑

连续截图功能需要的人也挺多的
superjason 发表于 2024-5-24 23:22
你这个是什么语言
 楼主| sgbyg 发表于 2024-5-24 23:23
superjason 发表于 2024-5-24 23:22
你这个是什么语言

c#c#c#c#
assuller 发表于 2024-5-24 23:24
这是什么需要写的,很优雅
 楼主| sgbyg 发表于 2024-5-24 23:33
assuller 发表于 2024-5-24 23:24
这是什么需要写的,很优雅

c#语言写的  因为编译出来的程序体积超小
这代码其实是屎山 因为没有进行整理优化
比如弹窗提示已完成后应该return不往后执行的
继续往后执行captureCount++;就多了一个bug
wincao 发表于 2024-5-30 08:55
有没有分析图片的部分?比如地面物品
 楼主| sgbyg 发表于 2024-5-30 17:50
wincao 发表于 2024-5-30 08:55
有没有分析图片的部分?比如地面物品

是指标注/自动标注吗?  
答案是没有
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-28 07:45

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表