默认情况下,Windows Vista/7/8 的 UAC 提示显示在安全桌面上。不幸的是,Print Screen在查看安全桌面时,该密钥似乎没有任何作用。我明白这背后的原因 - 没有用户模式应用程序应该能够捕获安全桌面的内容。
但是,我的问题仍然存在:有没有办法可以截取该桌面的屏幕截图?
编辑:也许我解释一下这个问题会有所帮助。
我目前正在运行 Windows 8,并且我有一个基于 DisplayLink 的小型显示器,我想使用它。此驱动程序刚刚发布,运行良好 - 只是在安全桌面上会崩溃。我想在那里的论坛上发布错误报告,为此,我需要一张屏幕截图。显然,问题不会在标准桌面上出现 - 而且在虚拟机中运行 Windows 是不可能的,因为 Windows 8 需要硬件虚拟化(我没有),而且让 USB 显示器与虚拟机一起工作无论如何都是很棘手的。
答案1
我发现了一种相当“黑帽”的做法......
在安全桌面中,辅助功能工具仍然可以正常工作...因此,我使用了我的副本FastStone Capture 便携式,我前往c:\windows\system32
并重命名osk.exe
了Faststone 目录osk.exe.old
并将其复制/重命名到system32 目录内部。fscapture.exe
osk.exe
然后我进入 UAC 提示并按下Win Key+ U,然后单击“屏幕键盘”选项。
并且...FastStone Capture 启动了,尽管这只是一个试用版...在这种模式下使用它无法访问我的许可证详细信息....我可以正常拍照并保存...虽然,当我以为我保存到我的桌面时,它实际上去了c:\windows\syswow64\config\systemprofile\desktop
...你每天都会学到新东西!
基于上述内容,我一直认为 UAC 安全桌面是使用您自己的凭据的提升环境,但是,我猜它实际上是在用户下启动的System
- 因此,Print Screen可能实际上有效,只是不在您的用户上下文中 - 考虑到这一点,如果您使用 Paint 的副本而不是 Fast Stone Capture,截取屏幕截图,然后通过屏幕键盘黑客启动 Paint,它可能只是工作相同!
编辑---更新---
Paint 已经失效!刚刚测试了我的理论,但不起作用,我不确定具体原因,但我猜如果你使用几乎任何屏幕捕获工具和我上面的方法,它应该会起作用。
答案2
拿出数码相机并拍下屏幕的照片。
答案3
但是,我的问题仍然存在:有没有办法可以截取该桌面的屏幕截图?
以适当位置运行并安装的进程SYSTEM
可以绕过 UIPI 并进入安全桌面。
利用现有的程序来实现这一点 — — 例如 RealVNC(不幸的是,不是免费版本)和 UltraVNC。
在您的电脑上运行服务器,并从另一台计算机将客户端连接到服务器。截取客户端窗口的屏幕截图。
尽管拍摄屏幕照片可能同样容易。
答案4
我将提供另一种选择,而不是使用虚拟机、vnc 或更改注册表或系统文件,因为在某些情况下这些选择可能很糟糕或不可能。
首先你需要一个截图软件,对于这个答案我将使用7捕获它是免费的,但我相信可以用其他软件来完成。
其次你需要 PsExecPsTools 套件,该工具将允许将 7capture 放入 Windows 安全桌面,而无需更改任何系统文件,只需创建和删除由 PsExec 自动完成的服务。
然后安装 7capture 并将 PsTools 解压到某个文件夹,执行以下操作:
1)以管理员身份打开CMD。
2)将当前文件夹设置为 PSTools 解压的文件夹:
cd path_to\PSTools
3)使用以下命令在 Windows 安全桌面内启动 7capture:
PsExec /h /x /d /s "path_to\7capture.exe"
在哪里:
-h:如果目标系统是 Vista 或更高版本,则使用帐户的提升令牌(如果可用)运行该进程。
-x:在 Winlogon 安全桌面上显示 UI(仅限本地系统)。
-d:不等待进程终止(非交互式)。
-s:在系统账户中运行远程进程。
4) 打开您要拍摄的 Windows 安全桌面。(UAC 提示、Ctrl+Alt+Del 屏幕等)
5) 使用 Ctrl+PrintScreen 仅拍摄一个窗口,或使用 PrintScreen 拍摄整个屏幕。
6) 使用 Alt+Tab 切换到 7capture。
7) 将文件保存到您想要的位置。(如果您对全屏图像有问题,只需将其保存为 BMP)
在这里您可以看到我的 Windows 7(巴西葡萄牙语)上的结果: