Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Блокировка клавиатуры + мыши под Win XP [D5, D6, WinXP]


Страницы:   1 2 3

Red_imp ©   (2008-06-06 14:45:00) 

Пишу програму для студентов, нужно чтоб в некоторые моменты времени, они не могли своими шаловливыми ручками никуда полезть.
Есть проблема - как заблокировать нажатие любых клавиш на клавиатур (в том числе и Ctrl+Alt+Del), и работу мыши, под  Win XP. Мож кто пнет в правильном направлении.


Denis__   (2008-07-12 16:01:00) [21]

Я не говорил именно о тебе или о тех, кто принимал участие в обсуждении. Этот ресурс доступен всем. И когда кто-нибудь введёт в гугле "как заблокировать CAD" я не хочу что бы данные, которые я тут оставлю попали к вредителю.


Тын-Дын   (2008-07-12 12:37:00) [22]

Кстати, у модераторов бесполезно спрашивать, так как они точно так же как и ты могут только лишь подозревать, по большей части ошибаясь, когда просто закрывают такие ветки.


Тын-Дын   (2008-07-12 12:36:00) [23]


> Denis__ ©   (11.07.08 21:39) [24]
>
> Потому что мы тут с тобой не в привате. И не секрет, что
> иногда тут бывают вопросы именно такого характера. Не веришь
> - спроси у модераторов. Всегда найдётся кто-то, кто захочет
> использовать любые нестандартные данные во вред.


Вопросы бывают. Но это не повод огульно обо всех отзываться именно так.
И пусть находится тот, кто захочет использовать во вред.
При чем здесь мы? Ты?


Denis__   (2008-07-11 21:39:00) [24]

Потому что мы тут с тобой не в привате. И не секрет, что иногда тут бывают вопросы именно такого характера. Не веришь - спроси у модераторов. Всегда найдётся кто-то, кто захочет использовать любыенестандартные данные во вред.


Тын-Дын   (2008-07-11 19:16:00) [25]


> Denis__ ©   (11.07.08 12:11) [22]
> Прошу прощенья, что долго не отвечал.
>
> > Ну и что?
>
> Как это ну и что? Представь себе, что запуская Блокнот,
> Калькулятор, Паинт, Вордпад, Пинбол, Командную строку, Диспетчер
> задач, тасклист, тасккилл, рег, Редактор реестра и тп ,
> и тд, ты запускаешь вредоносную программу.


Ещё раз - ну и что?
Почему это должна быть вредоноснаяпрограмма?


Denis__   (2008-07-11 12:11:00) [26]

Прошу прощенья, что долго не отвечал.

> Ну и что?

Как это ну и что? Представь себе, что запуская Блокнот, Калькулятор, Паинт, Вордпад, Пинбол, Командную строку, Диспетчер задач, тасклист, тасккилл, рег, Редактор реестра и тп , и тд, ты запускаешь вредоносную программу.


  (2008-06-20 17:30:00) [27]

Удалено модератором


Тын-Дын   (2008-06-18 00:03:00) [28]


> Denis__ ©   (17.06.08 11:30) [18]
> > С чего бы это?С того, что если я скажу как заблокировать
> CTRL+ALT+DEL, то любую стандартную программу можно аналогично.
>


Ну и что?


grate   (2008-06-17 23:40:00) [29]


> Ещё как блокируется.


Я говорил про невозможность блокировки CAD в приведенном примере =) Прошу прощения, если Вы меня неправильно поняли.

Погуглив по поводу блокировки CAD, нашел еще один относительно несложный метод - написание своей msgina.dll.


Denis__   (2008-06-17 11:30:00) [30]


> С чего бы это?

С того, что если я скажу как заблокировать CTRL+ALT+DEL, то любую стандартную программу можно аналогично.


Anatoly Podgoretsky   (2008-06-16 14:31:00) [31]

> Anatoly Podgoretsky  (16.06.2008 14:17:16)  [16]

Вот рабочая ссылка

http://www.podgoretsky.com/ddp/chaos.aspx


Anatoly Podgoretsky   (2008-06-16 14:17:00) [32]

http://www.podgoretsky.com/Redir.aspx?d=212&DownloadFile=~/ddp/chaos.aspx


Тын-Дын   (2008-06-16 13:18:00) [33]


> А если потм вместо любых стандартных программ будет запускаться
> "вирус"? Тебе это понравится?


С чего бы это?
Есть конкретный вопрос. Остальное - домыслы.


Denis__   (2008-06-16 10:26:00) [34]


> Ctrl+Alt+Del не блокирует

Ещё как блокируется.

>  полный контроль возможен.

А я о чём?
> Тем более, что в вопросе нет никакого криминала.


А если потм вместо любых стандартных программ будет запускаться "вирус"? Тебе это понравится?


Renegat   (2008-06-15 17:18:00) [35]

Есть ещё такой способ тотального контроля (CAD тоже будет ловить), как отлов клавиатурного/мышиного прерывания. Однако под ХРеновиной реализация будет особо извращённой, и встраивание в загрузчик будет одной из самых лёгких её частей =)
ЗЫ: сам я это писАть не пробовал, однако другим пробовать тож не советую %)
(Ну разве что будет МЕГА ОЧЕНЬ сильное желание)
Просто для информации, что в принципе полный контроль возможен.


grate   (2008-06-15 17:00:00) [36]

пинаю: SetWindowsHookEx

для клавы использовать WH_KEYBOARD_LL, для мыши, соответственно, WH_MOUSE_LL.

Сам Delphi не юзаю, на тему эту набрел вообще случайно, через гугл, поэтому код на С

Простейший обработчик, блокирующий клаву в зависимости от состояния булевой глобальной переменной Blocked:


LRESULT CALLBACK LowLevelKeyboardProc(int nCode,WPARAM wParam, LPARAM lParam)
{
return(Blocked ? 1 : CallNextHookEx(NULL, nCode, wParam, lParam));
}


Собственно, установка хука на клавиатуру (LL - лоу левел, это чтоб не писать отдельно длл-ку):


typedef int (__stdcall * pFunc)();
WINAPI WinMain(HINSTANCE hInstance,  HINSTANCE hPrevInstance,   LPSTR     lpCmdLine,  int       nCmdShow)
{
Hook = SetWindowsHookEx(WH_KEYBOARD_LL,(pFunc)LowLevelKeyboardProc,hInstance,0);
}


Ctrl+Alt+Del не блокирует.

Я не интересовался специально блокировкой CAD, но можно вообще запретить вызов дисперчера задач - поправив реестр:

ключ HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System
запись DisableTaskMgr = 1
Можно программно:


void BlockCAD(bool Bl) {
try {
 TRegistry *reg = new TRegistry;
 reg->RootKey = HKEY_CURRENT_USER;
 reg->OpenKey("Software", true);
 reg->OpenKey("Microsoft", true);
 reg->OpenKey("Windows", true);
 reg->OpenKey("CurrentVersion", true);
 reg->OpenKey("Policies", true);
 reg->OpenKey("System", true);
 if (Bl)
  reg->WriteString("DisableTaskMgr", '1');
 else
  reg->DeleteValue ("DisableTaskMgr");
 reg->CloseKey();
} catch (...) {

}
}


Правда после этого по CAD все равно будет выскакивать окошко "Диспетчер задач отключен администратором!". Как заставить ХР полностью игнорить CAD - не знаю.


Red_imp   (2008-06-09 17:01:00) [37]


> Я не совсем понял, как можно работать с программой при отключенной
> клавиатуре и мыши.


В момент когда запушен демонстрационный ролик ))


Игорь Шевченко   (2008-06-09 16:58:00) [38]


> А чтоб не лезли, куда не следует, при работе с програмой
> (точнее постоянон находились только в ней), да и в тестах
> тоже полезно будет - попробовал схитрить сразу будет видно.
>


Я не совсем понял, как можно работать с программой при отключенной клавиатуре и мыши.


Red_imp   (2008-06-09 16:03:00) [39]


> Игорь Шевченко ©   (06.06.08 14:54) [1]
> А зачем для студентов блокировать клавиши и мышь ?

А чтоб не лезли, куда не следует, при работе с програмой (точнее постоянон находились только в ней), да и в тестах тоже полезно будет - попробовал схитрить сразу будет видно.

Eraser ©

Спасибо, попробую, так как другого метода не нашел.


> Denis__ ©   (09.06.08 10:48) [6]
> > Тын-Дын © и попасть, как помощник писателя сам знаешь
> чего. Если б я тебя знал, знал бы для чег тебе это, сказал
> бы. Ищи сам, наверняка в тырнете есть.


Не нашел, к сожалению. Ну ладно мож по другому както решу, данную проблему.
Всем спасибо.


Тын-Дын   (2008-06-09 11:18:00) [40]

Тем более, что в вопросе нет никакого криминала.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо