【问题标题】:Take screenshot of unopened folder window截取未打开的文件夹窗口的屏幕截图
【发布时间】:2012-05-12 23:21:09
【问题描述】:

好的。这是我想做的:

我有一个对用户指定的文件夹进行排序的 Windows 应用程序。我想在排序之前截取这个文件夹的截图,然后在我的程序完成文件夹排序后再次截取。

我知道如何使用以下链接截取活动窗口的屏幕截图:

Capture screenshot of active window?

但是,如果我想截取未打开位置的屏幕截图会怎样?

Meening,我想截取一个根本没有打开的文件夹的屏幕截图。甚至可能吗?

如果是,那么我将如何实现这一目标?

我猜一种方法是让程序打开文件夹->截屏->关闭它->排序文件夹->打开文件夹->截取新屏幕截图->在屏幕上显示

虽然这不是一个非常优雅的解决方案。

谁能解释一下这个问题?感谢您的宝贵时间!

【问题讨论】:

  • 对文件夹进行排序?什么样的文件夹?
  • @SteveB 一个普通目录。它的种类很好。我只需要拍摄前后的截图。
  • 我不明白...操作系统对文件夹进行排序。你说的是文件系统文件夹吗?
  • 截图是实际显示的图片...我认为不可能
  • 为什么要截图?只需构建一个可视化报告(绘制图像、填充树视图等)

标签: c# visual-studio directory screenshot


【解决方案1】:

您无法拍摄未在屏幕上绘制的内容的快照。您需要打开文件夹,拍摄快照并关闭文件夹。

【讨论】:

  • 你能以某种方式打开它而不显示给用户吗?
  • @AlexanderNorway 它拍摄屏幕上的内容。无法拍摄不在屏幕上的内容。
【解决方案2】:

首先想到截图的目的。您可能能够在对它们进行排序之前和之后记录文件夹内对象的顺序。然后,您可以使用您的日志数据生成文本或图形输出,显示一个文件夹,如图像,内容按预先排序的顺序排列。

如果您截取屏幕截图,您如何处理不适合文件夹的对象?使用上述解决方案,您甚至可以获得打开文件夹中不可见的文件的信息。

否则将无法获得屏幕上任何内容的真实屏幕截图。打开文件夹将是最简单也是唯一的方法。

【讨论】:

    【解决方案3】:

    取决于你实际想要做什么,如果你的意图是在排序操作之前和之后检查“文件夹”和“子文件夹”的内容,我建议你使用命令提示符生成内容列表在一个文本文件中。你可以像这样使用 dir 命令:

    DIR /S /B "Path\To\Folder" > "Path\to\text\File.txt"
    

    【讨论】:

      【解决方案4】:

      您可以将文件夹窗口放置在他/她的屏幕范围之外。然后对该窗口区域进行截图。

      您可以使用以下代码确定屏幕的宽度和高度以及位置(如果您将第二个屏幕放置在主屏幕的左侧,则屏幕的起始位置为负数):

      System.Windows.SystemParameters.VirtualScreenWidth;  //Total width of screen
      System.Windows.SystemParameters.VirtualScreenHeight; //Total height of screen
      System.Windows.SystemParameters.VirtualScreenLeft;   //Start x location of screen
      System.Windows.SystemParameters.VirtualScreenTop;    //Start y location of screen
      

      通过将文件夹窗口放在该区域之外,然后对该文件夹进行屏幕截图,应该可以解决问题。 (不确定未测试)

      System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(folderWidth, folderHeight);
      System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap);
      g.CopyFromScreen(folderX, folderY, 0, 0, folderSize);
      bitmap.Save(aRandomFileStream, System.Drawing.Imaging.ImageFormat.Jpeg);
      

      按原样提供的代码...如果有效,则无需任何保证。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-12
        • 2018-11-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多