C# 打印屏幕活动窗口

2023-12-03

我目前正在尝试使用 Visual C# 打印活动窗口的屏幕。我有这个代码:

SaveFileDialog saveImageDialog = new SaveFileDialog();
saveImageDialog.Title = "Select output file:";
saveImageDialog.Filter = "JPeg Image|*.jpg|Bitmap Image|*.bmp|Gif Image|*.gif";
//saveImageDialog.FileName = printFileName;
if (saveImageDialog.ShowDialog() == DialogResult.OK)
{
    // Set the bitmap object to the size of the screen
    bmpScreenshot = new Bitmap(this.Bounds.Width, this.Bounds.Height, PixelFormat.Format32bppArgb);
    // Create a graphics object from the bitmap
    gfxScreenshot = Graphics.FromImage(bmpScreenshot);
    // Take the screenshot from the upper left corner to the right bottom corner
    gfxScreenshot.CopyFromScreen(this.Bounds.X, this.Bounds.Y, 0, 0, this.Bounds.Size, CopyPixelOperation.SourceCopy);
    // Save the screenshot to the specified path that the user has chosen
    bmpScreenshot.Save(saveImageDialog.FileName, ImageFormat.Png);
}

但此代码也捕获了 SaveImageDialog。有办法解决这个问题吗?多谢。


最简单的方法是切换代码:

// Set the bitmap object to the size of the screen
bmpScreenshot = new Bitmap(this.Bounds.Width, this.Bounds.Height,
                           PixelFormat.Format32bppArgb);
// Create a graphics object from the bitmap
gfxScreenshot = Graphics.FromImage(bmpScreenshot);
// Take the screenshot from the upper left corner to the right bottom corner
gfxScreenshot.CopyFromScreen(this.Bounds.X, this.Bounds.Y, 0, 0,
                             this.Bounds.Size, CopyPixelOperation.SourceCopy);

SaveFileDialog saveImageDialog = new SaveFileDialog();
saveImageDialog.Title = "Select output file:";
saveImageDialog.Filter = "JPeg Image|*.jpg|Bitmap Image|*.bmp|Gif Image|*.gif";
//saveImageDialog.FileName = printFileName;
if (saveImageDialog.ShowDialog() == DialogResult.OK)
{
    // Save the screenshot to the specified path that the user has chosen
    bmpScreenshot.Save(saveImageDialog.FileName, ImageFormat.Png);
}

首先创建屏幕截图,然后显示保存对话框,如果单击“确定”关闭对话框,则将其保存到光盘。

问题是,在您的代码中,程序没有时间重新绘制您的表单。如果您想保留代码的结构,您需要给它一些时间来处理待处理的事件,可能通过调用应用程序.DoEvents.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 打印屏幕活动窗口 的相关文章

  • 删除文件的最后 10 个字符

    我想删除文件的最后 10 个字符 说一个字符串 hello i am a c learner 是文件内的数据 我只是希望该文件是 hello i am a 文件的最后 10 个字符 即字符串 c learner 应在文件内消除 解决方案 将
  • C# 异步等待澄清?

    我读了here http blog stephencleary com 2012 02 async and await html that 等待检查等待的看看它是否有already完全的 如果 可等待已经完成 那么该方法将继续 运行 同步
  • 类型中的属性名称必须是唯一的

    我正在使用 Entity Framework 5 并且有以下实体 public class User public Int32 Id get set public String Username get set public virtual
  • free 和 malloc 在 C 中如何工作?

    我试图弄清楚如果我尝试 从中间 释放指针会发生什么 例如 看下面的代码 char ptr char malloc 10 sizeof char for char i 0 i lt 10 i ptr i i 10 ptr ptr ptr pt
  • 为什么 GCC 不允许我创建“内联静态 std::stringstream”?

    我将直接前往 MCVE include
  • 如何连接重叠的圆圈?

    我想在视觉上连接两个重叠的圆圈 以便 becomes 我已经有部分圆的方法 但现在我需要知道每个圆的重叠角度有多大 但我不知道该怎么做 有人有主意吗 Phi ArcTan Sqrt 4 R 2 d 2 d HTH Edit 对于两个不同的半
  • 如何使从 C# 调用的 C(P/invoke)代码“线程安全”

    我有一些简单的 C 代码 它使用单个全局变量 显然这不是线程安全的 所以当我使用 P invoke 从 C 中的多个线程调用它时 事情就搞砸了 如何为每个线程单独导入此函数 或使其线程安全 我尝试声明变量 declspec thread 但
  • C++ 多行字符串原始文字[重复]

    这个问题在这里已经有答案了 我们可以像这样定义一个多行字符串 const char text1 part 1 part 2 part 3 part 4 const char text2 part 1 part 2 part 3 part 4
  • 需要帮助优化算法 - 两百万以下所有素数的总和

    我正在尝试做一个欧拉计划 http projecteuler net问题 我正在寻找 2 000 000 以下所有素数的总和 这就是我所拥有的 int main int argc char argv unsigned long int su
  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • C# - 当代表执行异步任务时,我仍然需要 System.Threading 吗?

    由于我可以使用委托执行异步操作 我怀疑在我的应用程序中使用 System Threading 的机会很小 是否存在我无法避免 System Threading 的基本情况 只是我正处于学习阶段 例子 class Program public
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • LINQ:使用 INNER JOIN、Group 和 SUM

    我正在尝试使用 LINQ 执行以下 SQL 最接近的是执行交叉联接和总和计算 我知道必须有更好的方法来编写它 所以我向堆栈团队寻求帮助 SELECT T1 Column1 T1 Column2 SUM T3 Column1 AS Amoun
  • 复制目录下所有文件

    如何将一个目录中的所有内容复制到另一个目录而不循环遍历每个文件 你不能 两者都不Directory http msdn microsoft com en us library system io directory aspx nor Dir
  • 编译时展开 for 循环内的模板参数?

    维基百科 here http en wikipedia org wiki Template metaprogramming Compile time code optimization 给出了 for 循环的编译时展开 我想知道我们是否可以
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • C# 中最小化字符串长度

    我想减少字符串的长度 喜欢 这串 string foo Lorem ipsum dolor sit amet consectetur adipiscing elit Aenean in vehicula nulla Phasellus li
  • DotNetZip:如何提取文件,但忽略zip文件中的路径?

    尝试将文件提取到给定文件夹 忽略 zip 文件中的路径 但似乎没有办法 考虑到其中实现的所有其他好东西 这似乎是一个相当基本的要求 我缺少什么 代码是 using Ionic Zip ZipFile zf Ionic Zip ZipFile
  • 在OpenGL中,我可以在坐标(5, 5)处精确地绘制一个像素吗?

    我所说的 5 5 正是指第五行第五列 我发现使用屏幕坐标来绘制东西非常困难 OpenGL 中的所有坐标都是相对的 通常范围从 1 0 到 1 0 为什么阻止程序员使用屏幕坐标 窗口坐标如此严重 最简单的方法可能是通过以下方式设置投影以匹配渲
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使

随机推荐

  • R 中的分桶数据

    我正在尝试创建一个函数 根据给定的向量确定某个值进入哪个存储桶 所以我的函数有两个输入 一个确定存储桶断点的向量 例如 如果向量是 1 4 5 10 则桶将 我现在的做法是首先检查输入数字是否大于向量的最大元素或小于向量的最小元素 如果没有
  • 如何在拖动开始之前缓存整个图层并在拖动结束时将其恢复回来?

    我目前正在尝试稍微加快我的移动设备网络应用程序的速度 但现在我陷入了最重要的部分 缓存 如何在用户开始拖动之前缓存整个图层 并在拖动操作停止时将其恢复为可用的 Kinetic Nodes 现在我开始缓存 stage on mousedown
  • 图像分割结果中的噪声

    我正在做一个基于深度卷积神经网络的图像分割任务 网络结构来自这张纸 其结构如图所示 FCN在图像分割中的应用 该网络的设计基于全卷积网络 and DCAN 该数据集为腺体分割挑战赛公开基准数据集2015年米卡展会 也称为 Warwick Q
  • 为什么结构体中的双精度成员未在 8 字节边界上对齐?

    这是关于内存对齐的 在下面的代码中 我预计结构内 b 的偏移量为 8 32 位机器 看here 从而 使b总是发生在缓存行内 然而 事实并非如此 会员b在全局对象中struct test1似乎是对齐的 我不确定这是偶然的还是编译器故意这样做
  • 从 byte[] 返回文件下载

    这段代码 string xml XmlHelper ToXml queryTemplate byte xmlb StringHelper GetBytes xml var cd new System Net Mime ContentDisp
  • 如何在不使用 JSF 中隐藏标签的情况下将 javascript 内的值传递给托管 bean 属性?

    我们想知道是否可以在 Facelets 中的 javascript 方法内获取托管 bean 属性值 或者将 javascript 值传递给托管 bean 属性但不使用隐藏标记 当我们搜索它们时 我们看到的都是关于使用html隐藏标签或隐藏
  • 实体框架多对多查询:未生成导航属性

    我有两张桌子User and UserRole它们是使用链接表连接的UserInRole 当我生成实体模型时 由于某种原因 实体UserInRole没有生成 从图中可以看出 实体框架理解之间存在多对多关系User and UserRole
  • 如何细分/细化 xarray 数据集中的维度?

    Summary 我有一个数据集 其收集方式使得维度最初不可用 我想获取本质上是一大块无差别的数据 并为其添加维度 以便可以对其进行查询 子集化等 这是以下问题的核心 这是我拥有的 xarray 数据集
  • 如何将 Activator.CreateInstance 返回的对象转换为它转换的类型?

    在下面的代码中 是否可以将 x 转换为您要传递的类型Activator CreateInstance提前不知道是什么 我尝试传入typeof 但这行不通 var testClasses AppDomain CurrentDomain Get
  • 使用java识别文件扩展名

    我在数据库中有不同格式的文件 我想复制到我的本地机器 我如何识别文件格式 doc xls 等 问候 克里希纳 谢谢 您提供建议 根据您的建议 我编写了代码并且已经完成 请查看我的博客 我在这里发布了代码 http muralie39 wor
  • 在 Win32 上,如何使用 Perl、Python 或 Ruby(或 C)检测是否按下了 Left Shift 或 Right ALT?

    在 Win32 上 我想知道如何使用 Perl Python 或 Ruby 甚至在 C 中 检测是否按下了 Left Shift 或 Right ALT 不仅仅是当前窗口 而是整个全局环境 示例 当我输入文档时 我可以按右 ALT 启动用
  • 在没有 root 访问权限的服务器上安装 Docker 二进制文件

    我有一个由提供商提供的服务器 没有任何根访问权限 无法在 etc 或 var lib docker 中编写脚本 Docker 未安装 我的想法是在目录中安装并运行 docker 二进制文件 我将使用 shell 脚本安装 docker 该脚
  • Excel vba xml解析性能

    我正在努力在 Excel 中获取一些输入数据 将其解析为 xml 并使用它来运行 SQL 存储过程 但我遇到了 xml 解析的性能问题 输入表看起来像这样 Dates Name1 Name2 Name3 NameX Date1 Date2
  • 获取子文件夹Azure数据工厂中的所有文件名

    我在数据湖中有一个以下文件夹结构 我想从 ParentFolder 目录的所有子文件夹中获取所有 csv 文件名 我的所有文件都是 csv 文件 是否有一种使用元数据活动的简单方法 父文件夹 gt 年 2020 文件夹 2020 10 20
  • 防止滑动 UIPageViewController 时出现白色间隙

    我以这种方式实现了 UIPageViewController GalleryViewController 是PageViewController的容器 PageViewController 是 uipageViewController 我将
  • 如何使用C#计算段落中某个单词的数量

    我正在尝试编写一个程序 用户向系统提供一个单词和一个段落 系统的工作是计算该单词出现的次数 如何计算 C 中该单词出现的次数 使用正则表达式字边界 anchor int wordCount Regex Matches text b Rege
  • Inno Setup 桌面快捷方式(链接),其中设置了“以管理员身份运行”高级属性

    我正在努力让 Inno setup 5 5 9u 创建一个带有图标并具有高级属性的桌面快捷方式 以管理员身份运行 set Issue 这个问题与以下问题有点不同 如何使用 Inno Setup 在文件上设置 以管理员身份运行 因为我想做的不
  • 匿名 JSON 对象集合的单元测试

    这个问题的灵感来自于此很好的例子 我有 ASP NET Core MVC 应用程序 我正在编写单元测试对于控制器 其中一种方法返回JsonResult具有匿名类型的集合 我可以找到集合中的每个元素 我还可以像这样断言每个元素中的值 Dict
  • Expand.grid 的非冗余版本

    The R功能expand grid返回所提供参数的元素之间的所有可能组合 例如 gt expand grid c aa ab cc c aa ab cc Var1 Var2 1 aa aa 2 ab aa 3 cc aa 4 aa ab
  • C# 打印屏幕活动窗口

    我目前正在尝试使用 Visual C 打印活动窗口的屏幕 我有这个代码 SaveFileDialog saveImageDialog new SaveFileDialog saveImageDialog Title Select outpu