【问题标题】:Application that monitors the current display监视当前显示的应用程序
【发布时间】:2017-08-01 19:20:32
【问题描述】:

这是一个更广泛的问题,我正在寻求帮助。我正在尝试构建一个监视当前显示的应用程序(用户在他的监视器上看到的实际显示)。非常具体地说,我需要从桌面的特定部分(一个应用程序正在那里运行)提取数据,监视屏幕该部分的变化。我知道这些变化是视觉上的,需要图像处理。 尝试谷歌,但它一直是一场噩梦。它选择了诸如 display、monitor、extract 之类的关键字,我得到了不可用的结果。 如果以前有人这样做过,或者如果有人不能指出我正确的方向,那将非常有帮助。 谢谢!希望我已经很好地解释了我的查询。

【问题讨论】:

  • 我猜你正在寻找一个键盘记录器。 (啧啧啧……)
  • @RichardDunn 如果我没记错的话,键盘记录器监控键盘敲击是否正确?我正在寻找监视屏幕的一部分以进行更改,例如。文本从登录更改为注销
  • 是的,我只是在和你开玩笑。我从未使用过显示输出等。所以...
  • 你为什么在你的谷歌搜索中包含“显示”?它是一个图像。谁在乎它在哪里或是否显示。处理是一样的...
  • 您可以使用nircmd nirsoft.net/utils/nircmd.html(参见表中的最后几个条目)或类似方法来非常简单地抓取屏幕,无需任何代码。你可以很容易地用 ImageMagick 处理它,但你需要更具体。

标签: image-processing


【解决方案1】:

如果你打算在 Windows 上这样做,那么最好查看 WINAPI 并从这里开始挖掘:

GetWindowRect on MSDN

FindWindow on MSDN

C++ example on Stack Overflow for getWindowRect

C++ example on Stack Overflow for FindWindow

您可以枚举窗口,在标题中搜索特定关键字,通过计时器更新窗口坐标。在你成功完成之后,在这里挖掘:

'efficiently acquiring a screenshot of the windows desktop' on Stack Overflow

'How to compare byte to byte of two bitmap screenshots in c++' on Stack Overflow

在您成功获取屏幕截图并学习如何检测更改(而不是重新处理整个图像)之后,在这里挖掘:

OCR engine - libtesseract on Github

C++ libtesseract API example on Github

学习愉快!

【讨论】:

    猜你喜欢
    • 2015-09-18
    • 1970-01-01
    • 1970-01-01
    • 2017-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多