自己动手开发的小工具 记录编程之路
https://pic.imgdb.cn/item/665071d2d9c307b7e984fd34.png发现一个up主使用的工具 里面的图片采集功能挺有意思 作为一名热爱coding的技术小白,我立刻就萌生了自己也动手开发一个类似工具的想法。
https://pic.imgdb.cn/item/66507358d9c307b7e9874a9d.png
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
应该是一个连续截图的小工具,挺好。 太牛了楼主,真羡慕你们这些技术人 本帖最后由 long88888888 于 2024-5-24 22:40 编辑
连续截图功能需要的人也挺多的 你这个是什么语言 superjason 发表于 2024-5-24 23:22
你这个是什么语言
c#c#c#c# 这是什么需要写的,很优雅 assuller 发表于 2024-5-24 23:24
这是什么需要写的,很优雅
c#语言写的因为编译出来的程序体积超小
这代码其实是屎山 因为没有进行整理优化
比如弹窗提示已完成后应该return不往后执行的
继续往后执行captureCount++;就多了一个bug
有没有分析图片的部分?比如地面物品 wincao 发表于 2024-5-30 08:55
有没有分析图片的部分?比如地面物品
是指标注/自动标注吗?
答案是没有
页:
[1]
2