Я собирался спросить об этом в суперпользователе, но он связан с программированием на C/C++ и Win32, поэтому я попрошу его здесь. Я хочу добавить шаг между именем пользователя и оболочкой Windows для Windows 7+. Это вещи, которые я исследовал и пытался с ограниченным успехом:Могу ли я вставлять программу между окнами и оболочкой проводника в Windows?
MSGINA
тупиковой, который, кажется, как она будет работать отлично, но была прекращена из Windows Vista, так что я не могу использовать это.- Я просмотрел пользовательские
Windows Credential Providers
, но я не совсем уверен, что это сделает то, что я хочу (запуск приложения после входа в систему и перед оболочкой Windows). - A (полу) пользовательская оболочка, которая будет делать то, что мне нужно, запустите обычную оболочку Windows (explorer.exe).
Вариант 3 получил мне ближе, но моя проблема заключается в том, что я не могу запустить explorer.exe в качестве оболочки, если я создал это значение HKLM\...\Winlogon:Shell
реестра, указывающее на мою программу. Я мог бы создать значение Shell
в HKCU
, а затем изменить его на explorer.exe
перед тем, как уйти и запустить проводник, а затем восстановить значение моей программы. Это будет работать, но не так безопасно, как использование HKLM
. В этом случае я даже не могу использовать HKLM
, поскольку моя программа выполняется в контексте текущего пользователя, и у пользователя нет прав на запись для этого ключа.
Есть ли какие-либо творческие способы, которыми я могу это сделать или любые другие возможности, которые мне не хватает? Вариант 2 выше не был жизнеспособным, но, пожалуйста, исправьте меня, если я ошибаюсь.
Разве это не то, что [GINA] (https://en.wikipedia.org/wiki/Graphical_identification_and_authentication) является/был для? –
@UweKeim Да, это так, и это будет работать отлично, но я упоминаю в вопросе, что с Windows Vista и всех версий после Vista [прекращено] (https://en.wikipedia.org/wiki/Graphical_identification_and_authentication#End_of_life) GINA и он больше не будет работать, ведь файл 'msgina.dll' даже не существует в версии Windows с Vista до 10. Замена GINA - это новый' Credential Providers', но я не уверен, что это сработает так как они обрабатывают вещи по-разному. – vane
Может быть (!) «_ ... добавить шаг между входом пользователя и оболочкой Windows ... _» - это проблема [XY] (http://meta.stackexchange.com/a/233676/133056), и если вы объясните, что вы действительно хотите достичь, у кого-то есть альтернативная идея о том, как достичь фактической цели. –