Я хотел бы знать, как вызвать Windows Security Dialog (нажмите ctrl+alt+del на НОТЕ рабочей станции окон: Я не хочу диспетчер задач!) программно.
НА AN РАБОЧАЯ СТАНЦИЯ XP не волнуйтесь о Win7 или Vista
Идеально с быстрым примером в C# (или VB.NET, если Вы должны),
Я искал многие из DLL такой как msgina.dll
и я не могу найти его нигде!
Кроме того, просто вызов экрана пароля изменения был бы хорош!
Вы можете попробовать вызвать функцию WlxLoggedOnSAS из GINA или WlxSasNotify из WinLogon. Но, боюсь, это не сработает. Но, возможно, это приведет вас к рабочему методу. И точно не будет работать в Vista / W7.
С другой стороны, диалог безопасности Windows может быть вызван только с помощью защищенной последовательности внимания (ctrl + alt + del) по соображениям безопасности.
Вы можете взглянуть на ловушку SendInput в User32: http://msdn.microsoft.com/ en-us / library / ms646310 (VS.85) .aspx и http://pinvoke.net/default.aspx/user32/SendInput.html
Я могу представить себе что-то вроде этого: получить дескриптор рабочего стола, используя ' GetDesktopWindow ' , убедитесь, что фокус установлен на дескриптор, и отправьте нажатие клавиши 'Ctrl + Alt + Del' с помощью ' SendInput ' или используйте ' SendMessage ', чтобы отправить нажатия клавиш на этот дескриптор, возвращенный GetDesktopWindow
. Не гарантируется, что это сработает, так как это бесполезно.
Надеюсь, это поможет, С уважением, Том.
Функции безопасности могут стоять на вашем пути для программного управления функциями безопасности, такими как диалог безопасности, с помощью Ctrl Alt Del . Я сталкивался с такими же проблемами.
О вашем запросе на вызов диалогового окна смены пароля .
", предназначенный для представления и управления учетной записью конечного пользователя в сети [и локально]. "
Если вам не хватает решений, вы можете создать свои собственные Быстрая форма Windows с полями пароля и связь с Windows IADsUser Interface с помощью провайдера WinNT для привязки к локальной (а не сетевой) учетной записи пользователя на машине XP.
GetObject("WinNT://MYCOMPUTER/jeffsmith,user") //WinNT provider
... и используйте метод ChangePassword (..) (ссылки на пример кода).
usr.ChangePassword szOldPass, szNewPass
Если вы пытаетесь вызвать функции Windows напрямую, чтобы заставить пользователя доверять процессу, то, по общему признанию, настраиваемая форма для изменения пароля может выглядеть немного глупо.
Другой способ, который вы можете попробовать, - это программный вызов RunDLL32.exe из командной строки и нацеливание на правильную Win DLL, чтобы открыть диалоговое окно смены пароля. Один форум сказал, что следующее работает в XP, если SP2 не установлен. Я не могу проверить это, потому что у меня Vista.
rundll32.exe shell32.dll,Control_RunDLL password.cpl
Вы можете Google для многих из этих , однако, кажется, не хватает, чтобы изменить пароль или вызвать диалоговое окно безопасности Windows.