【问题标题】:How to capture screen at boot phase (when Autochk is running)?如何在启动阶段(Autochk 运行时)捕获屏幕?
【发布时间】:2017-02-27 04:08:02
【问题描述】:

我想编写一个能够在启动阶段(Autochk 运行时)捕获屏幕并写入文件的代码。最好的方法是什么?

据我所知,目前只有 ntdll.dll 可用……所以我们可以使用这个原生 API 打开 Mirror Driver 来获取屏幕数据。然而,为了从镜像驱动程序中获取数据,我们需要 GDI 库,但该库尚不可用。我该怎么办?

【问题讨论】:

  • 此时屏幕不是处于文本模式吗?
  • 我认为是已经切换到图形模式了,但是打印的内容只是文本
  • 这不是 C 或 C++ 相关问题。请不要这样标记它们。

标签: c++ c windows boot


【解决方案1】:

主要问题是当时 Windows 运行的是 Windows 代码,而不是你的。 (磁盘)驱动程序可能有一个例外,但是由于您正在谈论调用 Win32 DLL,这并不重要。您不能从驱动程序调用 GDI。再说了,当初为什么要叫你的司机呢?驱动程序响应操作系统请求以处理特定事件。

【讨论】:

  • 我们可以在 Autochk 之前注册一个启动时运行的应用程序,这个应用程序将分叉另一个进程并退出当前。所以 Autochk 和其他应用程序可以运行。另一个进程会定期调用驱动程序来获取屏幕数据并保存到磁盘。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-14
  • 2013-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-21
  • 1970-01-01
相关资源
最近更新 更多