|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Авг 12, 2003 04:36:54 Каким образом можно заблокировать нажатие этой комбинации в WinXP? Препод попросил за лето написать программу для проведения тестирования, которая бы сразу выдавала оценку, по окончанию теста. Следовательно приходится хранить ответы вместе с вопросами в одной базе, упакованной в Rar-архив с паролем. База распаковывается в начале выполнения программы во временную директорию, которая по окончанию теста удаляется. Проблема в том, что в WinNT не так-то просто заблокировать доступ к этой временной директории, а следовательно в процессе выполнения теста кто-нибудь может получить распакованную базу с вопросами (и ответами!), закрыв или свернув тест. Хуком WH_KEYBOARD_LL перехватить это сочетание клавиш не получилось (отдельно Del без проблем отлавливается). Хук был системным в отдельной Dll. Может кто-нибудь знает, что можно сделать? |
|
|
Дата: Авг 12, 2003 05:07:43 Я бы на вашем месте задействовал настоящую БД, вроде mySQL. Там и права доступа можно настроить на определённый аккаунт. |
|
|
Дата: Авг 12, 2003 11:27:17 Комбинация Alt+Ctrl+Del зарезервирована самой системой для своих нужд (по соображениям секьюрности WinLogon сидит на отдельном десктопе и переключается на него при нажатии данной комбинации). Это позволяет убедиться что ввод пароля в WinLogon не будет перехвачен какой-нибудь нехорошей програмкой. Заблокировать нажатие этой комбинации тривиальными методами невозможно (можно драйвер клавиатуры патчить). Поэтому тебе придется поменять архитектуру своего приложения. |
|
|
Дата: Авг 12, 2003 11:47:04 Sk. Inc. Одно из простых решений - придумайте алгоритм шифровки базы вопросов/ответов. Rar не нужен, можно просто держать этот bin файл "открытым". Дальше тривиально - загружаете файл, декриптуете и пользуете. Никаких заморочек с Ctrl-Alt-Del. |
|
|
Дата: Авг 12, 2003 11:49:50 А в чем проблема? Сорцы UnRar 3.0 доступны легально и на халяву. С файле rdwrfn.cpp есть метод ComprDataIO::UnpWrite() вобщем совсем не сложно заставить его писать не в файл, а в память - помойму это то что надо. |
|
|
Дата: Авг 12, 2003 19:57:05 Спасибо за идеи - посижу, подумаю. В общем-то проблема не в появлении диспетчера задач, а в том, что он позволяет закрыть, переключиться на другой процесс или запустить новое приложение. Раз заблокировать его появление не получится - возникают новые проблемы/вопросы: 1) Может быть можно заблокировать в нем меню "Файл->Новая задача..."? 2) Как можно скрыть свою программу в списке "Процессов" и "Приложений"? 3) Как недопустить переключение на другую программу? Заранее спасибо всем за участие. |
|
|
Дата: Авг 12, 2003 20:54:04 На мой взгляд, стоит распаковывать файл в память, т.к. даже если будет заблокирована комбинация Ctrl+Alt+Del просто отключив компьютер из сети (банально выдернув шнур) распакованные файлы останутся не удалёнными и при запуске останется просто их прочитать. Вероятно Вы будете хранить не сами ответы а варианты ответов, в таком слечае можно хранить вопросы по порядку их задавания, а ответы перемешанными с определённой закономерностью. Также можно обращать номера правильных ответов, т.е. пусть пять вариантов ответов на каждый вопрос 1, 2, 3, 4, 5 и пусть в файле 5 означает 1, 4 означает 2 или как то по другому. |
|
|
Дата: Авг 13, 2003 00:40:56 Если используется WinNT и на диске используется NTFS то можно дать доступ для чтения/записи БД какому-либо пользователю а всем другим пользователям такую возможность обрубить. Соответственно и запускать приложение нужно будет от имени этого пользователя (т.е. пользователя имеющего доступ к БД). Нафига этот геморрой нужен если любая стандартная БД позволяет использовать парольный доступ (например Access через механизм DAO). |
|
|
Дата: Авг 13, 2003 00:47:48 под W2k/XP набираешь в командной строке gpedit.msc потом открываешь ветку User Configuration\Administrative Templates\System\Ctrl + Alt + Del Options\. Здесь можно запретить вызовы Task Manager и остальных кнопок. Однако существует следующий способ доступа к файлам, достаточно открыть стандартный диалог FileOpen(Save) (Например через Help, или гиперссылка в стандартном About Dlg->Лицензионное соглашение открывает блокнот). При открытии .chm в меню можно открыть Internet Options (если не заблокирована соответствующая политика) View Temporary Files открывает Explorer. Делайте выводы,Sk. Inc. |
|
|
Дата: Авг 13, 2003 00:50:25 Вспомнил еще способ, даже при заблокированных Win Logo Key всегда доступна комбинация Win Logo Key + U которая вызывает Utility Manager. А там есть кнопочка Help :)) Лечилось удалением програм utilman.exe, sethc.exe, access.cpl из дистрибутива, system32, dllcache Windows. |
|
|
Дата: Авг 13, 2003 13:59:03 Спасибо всем, кто помогал в решеии данной проблемы. Я думаю, что использование БД с парольным доступом - наиболее правильный выход. Предлагаю закрыть тему. |
|
|
Дата: Авг 13, 2003 14:39:30 Sk. Inc. Так закройте :))) Там кнопочка внизу :) |