![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| _GRIN_ |
|
||||
![]() одинокий падаван ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 18.11.2007 Где: Калуга Репутация: нет Всего: 7 |
Здравствуйте.
Возникла проблема симуляции нажатия пользователем Ctrl+Alt+Del. Т.е. перехват клавиш делать не нужно (допустим пользователь выбрал в меню Send Ctrl+Alt+Del). Note: OS Windows XP SP3 --------------------------------- пробовал симулировать последовательное нажатие и отпускание:
результат нулевой ---------------------------------- Пробовал заюзать WlxUseCtrlAltDel ( http://msdn.microsoft.com/en-us/library/wi...4(v=vs.85).aspx ) но: 1. в системе нет gina.dll - а есть msgina.dll. 2. msgina.dll НЕ СОДЕРЖИТ функций WlxUseCtrlAltDel, WlxSetOption, WlxSasNotify - хотя и СОДЕРЖИТ функции WlxNegotiate, WlxInitialize. можно конечно сделать свою реализацию gina.dll - но регистрировать её в реестре нельзя по ТЗ. ---------------------------------- Посмотрел реализацию в tightvnc-2.5.2 (для версий младше висты) и на её основе сделал следующее:
В итоге desktop == NULL и послав WM_HOTKEY всем окнам (HWND_BROADCAST) получаю окно запуска приложений ( как после нажатия Win+R ) Пробывал в PostMessage менять последний параметра на MAKELONG( MOD_CONTROL, VK_DELETE | VK_MENU ) - результат тот же. ------------------------------------------------------------------------- Просто запуск "C:\\windows\\system32\\taskmgr.exe" - но это не то, что нужно, т.к. по этой комбинации может требоваться переходить к логину на компе где установлено приложение (приложение а-ля team-viewer) Please, help! =) -------------------- Дорогу осилит идущий |
||||
|
|||||
| leniviy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 552 Регистрация: 8.2.2003 Где: Спб Репутация: 1 Всего: 5 |
Зачем PostMessage ? Надо SendInput
Был не прав. Это сообщение отредактировал(а) leniviy - 9.8.2012, 13:07 |
|||
|
||||
| leniviy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 552 Регистрация: 8.2.2003 Где: Спб Репутация: 1 Всего: 5 |
У меня семёрка. Я запустил твой код из-под сервиса.
OpenDesktop() срабатывает, но FindWindow ничего находит. EnumWindows() тоже ничего не находит |
|||
|
||||
| leniviy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 552 Регистрация: 8.2.2003 Где: Спб Репутация: 1 Всего: 5 |
под вистой и выше всё проще:
|
|||
|
||||
| _GRIN_ |
|
||||
![]() одинокий падаван ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 18.11.2007 Где: Калуга Репутация: нет Всего: 7 |
Под 7-кой не работает пробывал из-под запущенного и установленного сервиса:
вот аддапированный код:
в лог выводится только:
сообщений об ошибках нет - но результата нет. З.Ы. - правда я пробывал для оси - установленной на виртуалбоксе. Это сообщение отредактировал(а) _GRIN_ - 3.9.2012, 15:56 -------------------- Дорогу осилит идущий |
||||
|
|||||
| leniviy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 552 Регистрация: 8.2.2003 Где: Спб Репутация: 1 Всего: 5 |
Значит прав нет. Ты точно из-под сервиса этот код запускаешь?
|
|||
|
||||
| _GRIN_ |
|
|||
![]() одинокий падаван ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 18.11.2007 Где: Калуга Репутация: нет Всего: 7 |
ща гляну из-под какого пользователя данный сервис запускается. сервис запускается из под текущего пользователя (grin - который является администратором компьютера) напутал - сервис работает из-под пользователя SYSTEM Это сообщение отредактировал(а) _GRIN_ - 3.9.2012, 16:34 -------------------- Дорогу осилит идущий |
|||
|
||||
| _GRIN_ |
|
|||
![]() одинокий падаван ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 18.11.2007 Где: Калуга Репутация: нет Всего: 7 |
Для семёрки проблема частично решена - нужно было в групповых политиках включить следующую политику:
Computer Configuration | Administrative Templates | Windows Components | Windows Logon Options | Disable or enable software Secure Attention Sequence Осталось под Xp добить -------------------- Дорогу осилит идущий |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |