Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2009.08.30;
Скачать: [xml.tar.bz2];

Вниз

Блокировка клавиатуры + мыши под Win XP   Найти похожие ветки 

 
Red_imp ©   (2008-06-06 14:45) [0]

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


 
Игорь Шевченко ©   (2008-06-06 14:54) [1]

А зачем для студентов блокировать клавиши и мышь ?


 
Anatoly Podgoretsky ©   (2008-06-06 15:12) [2]

> Red_imp  (06.06.2008 14:45:00)  [0]

Только попробуй, поймают и изобьют, заодно мышку и клавиатуру разломают.


 
Eraser ©   (2008-06-06 19:15) [3]

> в том числе и Ctrl+Alt+Del

для XP - написать GINA, для висты - драйвер, только потом не забыть подписать его у MS.


 
Denis__ ©   (2008-06-08 11:29) [4]


> > в том числе и Ctrl+Alt+Del
>
> для XP - написать GINA, для висты - драйвер, только потом
> не забыть подписать его у MS.

Всё намного проще...


 
Тын-Дын ©   (2008-06-08 14:57) [5]


> Denis__ ©   (08.06.08 11:29) [4]
> > > в том числе и Ctrl+Alt+Del> > для XP - написать GINA,
>  для висты - драйвер, только потом > не забыть подписать
> его у MS.Всё намного проще...


Ну так ответь, раз всё проще...


 
Denis__ ©   (2008-06-09 10:48) [6]


> Тын-Дын ©

и попасть, как помощник писателя сам знаешь чего. Если б я тебя знал, знал бы для чег тебе это, сказал бы. Ищи сам, наверняка в тырнете есть.


 
Тын-Дын ©   (2008-06-09 10:58) [7]


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


Гнилая отмазка.


 
Тын-Дын ©   (2008-06-09 11:18) [8]

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


 
Red_imp ©   (2008-06-09 16:03) [9]


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

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

Eraser ©

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


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


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


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


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


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


 
Red_imp ©   (2008-06-09 17:01) [11]


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


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


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

пинаю: 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 - не знаю.


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

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


 
Denis__ ©   (2008-06-16 10:26) [14]


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

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

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

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


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


 
Тын-Дын ©   (2008-06-16 13:18) [15]


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


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


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

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


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

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

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

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


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


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

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


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


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


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

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


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


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


Ну и что?


 
имя   (2008-06-20 17:30) [21]

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


 
Denis__ ©   (2008-07-11 12:11) [22]

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

> Ну и что?

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


 
Тын-Дын ©   (2008-07-11 19:16) [23]


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


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


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

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


 
Тын-Дын ©   (2008-07-12 12:36) [25]


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


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


 
Тын-Дын ©   (2008-07-12 12:37) [26]

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


 
Denis__ ©   (2008-07-12 16:01) [27]

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


 
Renegat   (2008-07-12 16:28) [28]

> При чем здесь мы? Ты?

А при том что всякие, блин, кул хацкеры которые только и умеют, что понадёргать кода откуда ни попадя, и сваять очередной мега вирус на страх всему Тырнету, в основном берут код и идеи с таких вот безобидных на первый взгляд обсуждений. Меня уже задолбали такие люди, и если им добровольно помогать, то они никогда не здохнут.
ЗЫ: сугубо ИМХО, Denis__ прав.


 
Тын-Дын ©   (2008-07-12 22:03) [29]


> Renegat   (12.07.08 16:28) [28]
>
> > При чем здесь мы? Ты?
>
> А при том что всякие, блин, кул хацкеры которые только и
> умеют, что понадёргать кода откуда ни попадя, и сваять очередной
> мега вирус на страх всему Тырнету, в основном берут код
> и идеи с таких вот безобидных на первый взгляд обсуждений.
>  Меня уже задолбали такие люди, и если им добровольно помогать,
>  то они никогда не здохнут.


Тот, кто понадёргает код откуда не попадя, не сможет написать что-то приличное - такое, для чего нужны глубокие знания системы. Так что все эти разговоры - от лукавого.


 
Renegat   (2008-07-12 22:22) [30]

> кто понадёргает код откуда не попадя, не сможет написать что-то приличное

А если всё приличное уже написали за него, а он просто это спёр и скомпилил в одной проге? Примеров тучи. Почему так много сейчас вирей, распространяющихся на флэшках? Потому что в эту область вирусописания сейчас ломанулись все кому не лень.


 
Тын-Дын ©   (2008-07-12 22:34) [31]


> Renegat   (12.07.08 22:22) [30]
>
> > кто понадёргает код откуда не попадя, не сможет написать
> что-то приличное
>
> А если всё приличное уже написали за него, а он просто это
> спёр и скомпилил в одной проге? Примеров тучи. Почему так
> много сейчас вирей, распространяющихся на флэшках? Потому
> что в эту область вирусописания сейчас ломанулись все кому
> не лень.


Ну и что? Одним больше, одним меньше - разница не велика.
У многих есть свои локальные задачи, никак не связанные с вирусописательством, и нет смысла лишать их помощи из-за некоторых ублюдков..


 
Riply ©   (2008-07-12 23:48) [32]

> [31] Тын-Дын ©   (12.07.08 22:34)

> и нет смысла лишать их помощи из-за некоторых ублюдков..

"Помощь" <> "выкладывание готового кода".
Даже не IMHO :)


 
Тын-Дын ©   (2008-07-13 00:27) [33]


> Riply ©   (12.07.08 23:48) [32]
>
> > [31] Тын-Дын ©   (12.07.08 22:34)
>
> > и нет смысла лишать их помощи из-за некоторых ублюдков.
> .
>
> "Помощь" <> "выкладывание готового кода".
> Даже не IMHO :)


Иногда помощь именно в этом и заключается.
Изучить код и использовать его иногда единственная возможность понять путь решения.


 
Игорь Шевченко ©   (2008-07-13 00:33) [34]


> У многих есть свои локальные задачи, никак не связанные
> с вирусописательством


например заблокировать CAD


 
Тын-Дын ©   (2008-07-13 01:23) [35]


> Игорь Шевченко ©   (13.07.08 00:33) [34]
>
>
> > У многих есть свои локальные задачи, никак не связанные
> > с вирусописательством
>
>
> например заблокировать CAD


Например.
Почему бы нет?


 
Renegat   (2008-07-13 01:31) [36]

> Почему бы нет?

Ну если бы мне в руки попала такая прога - то даже будь она стотыщ раз полезной, я б её:
а) сломал бы и эту фичу отключил (ибо нефиг Главный Хоткей блокировать)
б) или если б было лень ломать, просто стёр бы.


 
Германн ©   (2008-07-13 01:31) [37]


> Тын-Дын ©   (12.07.08 12:37) [26]
>
> Кстати, у модераторов бесполезно спрашивать, так как они
> точно так же как и ты могут только лишь подозревать, по
> большей части ошибаясь, когда просто закрывают такие ветки.
>

Иногда хирург решается на ампутацию, даже не будучи на 100% уверенным, что проблему нельзя решить неоперативным лечением. А ведь он врач, который блюдет заповедь не навреди!
Модераторам проще. Навредить (серьёзно навредить) в таких случаях они не могут. Зато в случаях, когда необходимо закрыть обсуждение и они его закрывают, у них нет промашек.


 
Тын-Дын ©   (2008-07-13 01:40) [38]

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


 
Anatoly Podgoretsky ©   (2008-07-13 01:41) [39]

> Тын-Дын  (12.07.2008 22:03:29)  [29]

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


 
Тын-Дын ©   (2008-07-13 01:43) [40]


> Renegat   (13.07.08 01:31) [36]
>
> > Почему бы нет?
>
> Ну если бы мне в руки попала такая прога - то даже будь
> она стотыщ раз полезной, я б её:
> а) сломал бы и эту фичу отключил (ибо нефиг Главный Хоткей
> блокировать)


Вполне возможно.


> б) или если б было лень ломать, просто стёр бы.


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



Страницы: 1 2 вся ветка

Форум: "WinAPI";
Текущий архив: 2009.08.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.005 c
10-1158414306
AAAA
2006-09-16 17:45
2009.08.30
TDCOMConnection. Создал


1-1213595605
ganda
2008-06-16 09:53
2009.08.30
DevEpress Grid + фильтрация


15-1246337441
desc
2009-06-30 08:50
2009.08.30
Общий вопрос по базам данных


2-1246131301
Alexei
2009-06-27 23:35
2009.08.30
Переход по ссылке в WebBrowser e


2-1246249539
karlit0
2009-06-29 08:25
2009.08.30
Combobox и Memo





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский