使用示例其中使用了窗口枚举辅助类 , 详细代码请看文章末尾的 Github 项目 。支持 .Net Core 。
1static async Task Main(string[] args) 2{ 3Console.Write("按任意键开始DX截图……"); 4Console.ReadKey(); 56string path = @"E:截图测试"; 78var cancel = new CancellationTokenSource(); 9await Task.Run(() =>10{11Task.Run(() =>12{13Thread.Sleep(5000);14cancel.Cancel();15Console.WriteLine("DX截图结束!");16});17var savePath = $@"{path}DX";18Directory.CreateDirectory(savePath);19 20using var dx = new DirectXScreenCapturer();21Console.WriteLine("开始DX截图……");2223while (!cancel.IsCancellationRequested)24{25var (result, isBlackFrame, image) = dx.GetFrameImage();26if (result.Success && !isBlackFrame) image.Save($@"{savePath}{DateTime.Now.Ticks}.jpg", ImageFormat.Jpeg);27image?.Dispose();28}29}, cancel.Token);30 31var windows = WindowEnumerator.FindAll();32for (int i = 0; i < windows.Count; i++)33{34var window = windows[i];35Console.WriteLine($@"{i.ToString().PadLeft(3, ' ')}. {window.Title}36{window.Bounds.X}, {window.Bounds.Y}, {window.Bounds.Width}, {window.Bounds.Height}");37}38 39var savePath = $@"{path}Gdi";40Directory.CreateDirectory(savePath);41Console.WriteLine("开始Gdi窗口截图……");42 43foreach (var win in windows)44{45var image = CaptureWindow.ByHwnd(win.Hwnd);46image.Save($@"{savePath}{win.Title.Substring(win.Title.LastIndexOf(@"") < 0 ? 0 : win.Title.LastIndexOf(@"") + 1).Replace("/", "").Replace("*", "").Replace("?", "").Replace(""", "").Replace(":", "").Replace("<", "").Replace(">", "").Replace("|", "")}.jpg", ImageFormat.Jpeg);47image.Dispose();48}49Console.WriteLine("Gdi窗口截图结束!");50 51Console.ReadKey();52}结语这个示例代码中的 DX 截图只支持 win7 以上版本 , xp 是时候退出历史舞台了 。代码参考了网上大神的文章 , 并根据实际情况进行改造 , 尽可能简化实现和使用代码 , 展示最简单情况下所必须的代码 。如果实际需求比较复杂 , 可以以这个为底版进行改造 。
推荐阅读
- 苹果|本届苹果WWDC 可能是Windows电脑被黑最惨一次:老外直呼过分
- Windows操作系统|Win11年度版本22H2特性曝光:回滚系统更方便
- 饵料|把早口鱼钓好并不难。上鱼窗口期你明确吗?打窝与抽窝哪个效果好
- 魅族|魅族PANDAER首款掌机来了:全球首款超轻薄OLED Windows掌机
- 微软|微软神速!Windows 11的2023年更新确认 暗藏重磅功能
- 新装windows10无法找到网络适配器的驱动程序-window10无法找到网络适配器的驱动程序怎么办-
- 微软|Windows 11 2023年重大更新代号定了:毫不意外
- Windows操作系统|Steam 5月硬件调查出炉:Win11份额首破20%
- 微软|UWP日渐式微!微软Windows商店还有前途吗
- 梅毒窗口期
