По умолчанию запрос UAC в Windows Vista/7/8 отображается на защищенном рабочем столе. К сожалению, ключ, Print Screenпохоже, не имеет никакого эффекта при просмотре защищенного рабочего стола. Я понимаю причину этого — ни одно приложение пользовательского режима не должно иметь возможности перехватывать содержимое защищенного рабочего стола.
Однако у меня остается вопрос: есть ли способ сделать снимок экрана этого рабочего стола?
Редактировать:возможно, будет полезно, если я объясню проблему.
В настоящее время я использую Windows 8 и у меня есть небольшой монитор на базе DisplayLink, который я хотел бы использовать.Этот драйвербыл только что выпущен и отлично работает - за исключением того, что он ломается на защищенном рабочем столе. Я хочу разместить отчет об ошибке на форумах, и для этого мне понадобится скриншот. Очевидно, что проблема не проявится на стандартном рабочем столе - и запуск Windows в виртуальной машине невозможен, потому что Windows 8 требует аппаратной виртуализации (которой у меня нет), а заставить USB-мониторы работать с виртуальной машиной в лучшем случае сложно.
решение1
Я нашел довольно «черный» способ сделать это...
На защищенном рабочем столе инструменты специальных возможностей по-прежнему работают нормально... поэтому я использовал свою копиюFastStone Capture Портативный, я перешел в каталог Faststone, c:\windows\system32
переименовал osk.exe
его 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захватэто бесплатно, но я считаю, что это можно сделать и с помощью другого программного обеспечения.
Во-вторых, вам понадобится PsExec изПакет PsTools, этот инструмент позволит поместить 7capture в защищенный рабочий стол Windows, не изменяя никаких системных файлов, а просто создавая и удаляя службу, что автоматически выполняется PsExec.
Затем с установленным 7capture и извлеченным в какую-либо папку PsTools выполните следующее:
1) Откройте CMD от имени администратора.
2) Установите текущую папку на папку, куда был извлечен PSTools:
cd path_to\PSTools
3) Запустите 7capture внутри безопасного рабочего стола Windows с помощью следующей команды:
PsExec /h /x /d /s "path_to\7capture.exe"
Где:
-h: Если целевая система — Vista или выше, процесс запускается с повышенным токеном учетной записи, если он доступен.
-x: Отображение пользовательского интерфейса на защищенном рабочем столе Winlogon (только локальная система).
-d: Не ждать завершения процесса (неинтерактивно).
-s: Запустить удаленный процесс в учетной записи System.
4) Откройте защищенный рабочий стол Windows, снимок которого вы хотите сделать. (Запрос UAC, экран Ctrl+Alt+Del и т. д.)
5) Используйте Ctrl+PrintScreen, чтобы сделать снимок только одного окна, или PrintScreen, чтобы сделать снимок всего экрана.
6) Используйте Alt+Tab для переключения на 7capture.
7) Просто сохраните файл в нужном вам месте. (Если у вас возникли проблемы с полноэкранным изображением, просто сохраните его как BMP)
А здесь вы можете увидеть результаты на моем Windows 7 (бразильский португальский язык):