Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/30: Рейтинг темы: голосов - 30, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 30.06.2015
Сообщений: 32

Запрет нажатий сочетаний клавиш для определенного процесса

06.07.2015, 20:15. Показов 6361. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! В Visual Basic я новичок, но мне нужно решить одну задачу. Запретить нажатие следующих клавиш

Alt + tab
alt + Ctrl + del
Alt + F4
Ctrl + Shift + Esc

для Windows Xp, Windows 7 и Windows 8.

Допустим. я запускаю свою программу (с запретом нажатий клавиш), далее нужное мне приложение "proga.exe" И уже в "proga.exe" не работают сочетания клавиш.

P.S.
Я не пишу какой-либо вирус. Просто необходимо таким образом перекрыть багоюз в одном приложении. Надеюсь на ваше взаимопонимание и поддержку.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.07.2015, 20:15
Ответы с готовыми решениями:

Запрет нажатий клавиш
Как запретить пользователю нажимать клавишу PrtSc power home cmd shift + цифра .. ?

Память процесса, эмуляция нажатий клавиш
1. Дайте плиз кто-нибудь пример или исходник с использованием ReadProcessMemory и WriteProcessMemory , читал статьи всякие, постоянно...

Запрет запуска определённого процесса
Всем привет) появилась необходимость запретить запуск программы, но знаний маловато а здесь и в гугле ничего толком не нашел и...

21
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
06.07.2015, 20:46
Цитата Сообщение от Malachor Посмотреть сообщение
перекрыть багоюз в одном приложении.
Баг в Winlocker-e ?
0
1 / 1 / 0
Регистрация: 30.06.2015
Сообщений: 32
06.07.2015, 20:58  [ТС]
ну как-бы вам сказать. Существует старая диабло-подобная игрушка Sacred Underworld. Используя данные клавиши, скажем alt+f4 можно предотвратить смерть персонажа, либо производить клонирование предметов, в сетевом режиме. Объяснять сам процесс довольно долго, но было бы неплохо, если эту возможность как-то убрать. Пусть даже таким способом.

Добавлено через 8 минут
Цитата Сообщение от Dragokas Посмотреть сообщение
Баг в Winlocker-e ?
ну как-бы вам сказать. Существует старая диабло-подобная игрушка Sacred Underworld. Используя данные клавиши, скажем alt+f4 можно предотвратить смерть персонажа, либо производить клонирование предметов, в сетевом режиме. Объяснять сам процесс довольно долго, но было бы неплохо, если эту возможность как-то убрать. Пусть даже таким способом.

Тем более Winlocker на сколько мне известно блокирует систему полностью. А здесь имеется в виду блокировка клавиш для конкретного процесса.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
07.07.2015, 13:07
ALT+F4 - это выход из программы.
Каким образом это позволит читерить, если это делать уже не для кого?
0
1 / 1 / 0
Регистрация: 30.06.2015
Сообщений: 32
07.07.2015, 18:27  [ТС]
Цитата Сообщение от Dragokas Посмотреть сообщение
ALT+F4 - это выход из программы.
Каким образом это позволит читерить, если это делать уже не для кого?
Можно ) Уж поверьте! Скажем при игре на локальном сервере (эмулятор локальной сети) если персонаж умирает и игрок успевает нажать Alt+F4 смерть не засчитывается. Клонка предметов опять-же. Два игрока находятся на острове респауне один из них сохраняет персонажа (в игре есть функция экспорта) выкидывает рар шмотку или какой-либо иной предмет, далее нажимает Alt+F4 и вауля! при следующем заходе предмет сохранился у персонажа, хотя фактически был передан другому игроку.

P.S.
Собственно занимаюсь разработкой мода для игры Sacred Underworld ориентированного на сетевую игру. https://vk.com/club21089257 - это группа моего проекта, дабы развеять ваши сомнения. Так-же готов при необходимости продемонстрировать на видео сам процесс багоюза.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
07.07.2015, 18:35
А почему язык именно VB6? Вы надстройку к клиенту на нем пишете?
0
1 / 1 / 0
Регистрация: 30.06.2015
Сообщений: 32
08.07.2015, 18:45  [ТС]
В общем суть реализации такова: Для старта игры запускается батник, который стартует программу блокировки нужных клавиш, далее стартует игра. После закрытия игры "sacred.exe" закрывается и программа блокировки клавиш. По скольку я в программировании (за исключением HTML, PHP, Java Script) нуб, поэтому и обратился за помощью на данный форум.

Добавлено через 1 минуту
Цитата Сообщение от Dragokas Посмотреть сообщение
А почему язык именно VB6? Вы надстройку к клиенту на нем пишете?
Basic немного помню из уроков информатики, думаю разобраться будет несложно. Освежить так сказать в памяти смогу. В остальном дуб дубом )

Добавлено через 23 часа 34 минуты
Я так понимаю желающих помочь мне, здесь нет? Тем не менее спасибо.
0
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
08.07.2015, 19:39
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Ставишь хук на клавиатуру и перехватываешь клавиши. (не знаю для чего перехватывать Ctrl+Alt+Del, похоже на зловред, но таким способом это сочетание не перехватить)
Объясни мне для чего перехватывать Ctrl+Alt+Del? Ни одна игра это сочетание не использует.
По остальным сочетаниям, ставишь LL-хук и в обработчике нажатия пишешь:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Dim prevent As Boolean  ' Флаг запрещения
 
Select Case lParam.VkCode
Case vbKeyF4
    ' Проверяем ALT
    If lParam.flags And LLKHF_ALTDOWN Then
        prevent = True
    End If
Case vbKeyTab
    ' Проверяем ALT
    If lParam.flags And LLKHF_ALTDOWN Then
        prevent = True
    End If
Case vbKeyEscape
    ' Проверяем CTRL и SHIFT
    If GetAsyncKeyState(vbKeyShift) < 0 And GetAsyncKeyState(vbKeyControl) < 0 Then
        prevent = True
    End If
End Select
 
If prevent Then
    LowLevelkbdProc = -1
    Exit Function
End If
1
1 / 1 / 0
Регистрация: 30.06.2015
Сообщений: 32
08.07.2015, 19:58  [ТС]
Перехват Ctrl+Alt+Del банально для того, дабы хитрый пользователь вызвав диспетчер не убил sacred.exe что соответственно будет равносильно нажатию alt+f4. Эффект будет аналогичный как я говорил выше:

"Два игрока находятся на острове респауне один из них сохраняет персонажа (в игре есть функция экспорта) выкидывает рар шмотку или какой-либо иной предмет, далее нажимает Alt+F4 и вауля! при следующем заходе предмет сохранился у персонажа, хотя фактически был передан другому игроку."

Тем более:
"В общем суть реализации такова: Для старта игры запускается батник, который стартует программу блокировки нужных клавиш, далее стартует игра. После закрытия игры "sacred.exe" закрывается и программа блокировки клавиш."

т.е. запрет этих сочетаний действует только когда запущен sacred.exe. После закрытия программы все клавиши соответственно работают как надо. По сути и не зловред ведь )

За код спасибо! Будем пробовать
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
08.07.2015, 20:20
Цитата Сообщение от Malachor Посмотреть сообщение
Для старта игры запускается батник, который стартует программу блокировки нужных клавиш
Мне вот этот момент не ясен. Для чего я, хитрый читер, буду запускать ваш батник с античитом, если можно просто запустить только игру?
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
08.07.2015, 20:32
Цитата Сообщение от Malachor Посмотреть сообщение
Перехват Ctrl+Alt+Del банально для того, дабы хитрый пользователь вызвав диспетчер
На XP разве что...
Защита все равно никакая.
Я возьму нажму Win+L и запущу заранее подготовленный у меня на рабочем столе батник, который вырубит Ваш процесс. Или еще проще, зарегистрирую свой хоткей на ярлык к этому батнику.

Цитата Сообщение от The trick Посмотреть сообщение
Ставишь хук на клавиатуру и перехватываешь клавиши.
А если через RegisterHotkey ?
0
1 / 1 / 0
Регистрация: 30.06.2015
Сообщений: 32
08.07.2015, 20:46  [ТС]
Цитата Сообщение от Dragokas Посмотреть сообщение
Я возьму нажму Win+L и запущу заранее подготовленный у меня на рабочем столе батник, который вырубит Ваш процесс.
Вполне себе, но это вы )) Так-же сделал бы и я. Скажем не каждый игрок будет заморачиваться подобным образом. BAT-ник вообще можно будет объединить вместе с обеими программами с помощью Quick Batch File Compiler в один .exe
0
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
08.07.2015, 21:31
Цитата Сообщение от Dragokas Посмотреть сообщение
А если через RegisterHotkey ?
RegisterHotKey fails if the keystrokes specified for the hot key have already been registered by another hot key.
1
1 / 1 / 0
Регистрация: 30.06.2015
Сообщений: 32
08.07.2015, 23:01  [ТС]
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Мне вот этот момент не ясен. Для чего я, хитрый читер, буду запускать ваш батник с античитом, если можно просто запустить только игру?
BAT-ник вообще можно будет объединить вместе с обеими программами с помощью Quick Batch File Compiler в один .exe
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
08.07.2015, 23:44
Цитата Сообщение от Malachor Посмотреть сообщение
BAT-ник вообще можно будет объединить вместе с обеими программами
Назовите мне хоть одну причину зачем я буду запускать этот объединённый файл, если можно просто запустить родной "sacred.exe"?
Опять же антивирусы могут неодобрительно отреагировать на вашу подделку.
Какой то ерундой вы занимаетесь, или не всю правду говорите. Ну не вижу я практического толка от этой утилиты.
Если в "sacred.exe" изначально нет такой защиты от читерства, то ни какие навесные утилиты ей не помогут!
1
1 / 1 / 0
Регистрация: 30.06.2015
Сообщений: 32
09.07.2015, 22:41  [ТС]
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Назовите мне хоть одну причину зачем я буду запускать этот объединённый файл, если можно просто запустить родной "sacred.exe"?
А у вас есть какие-то другие предложения по предотвращению багоюза? Если, да, то вместо того что-бы критиковать данный способ предложите свой. Да минусы естественно есть, но сие рассчитано на рядового фаната sacred, который не станет вникать в суть работы сей защиты. Тем более можно написать в батнике пару строк, которые будут брать файлы необходимые для захода на сервер, непосредственно с самого сервера. Просто берем меняем содержимое некоторых файлов самого сервера (файлы так-же входят в состав клиента). Т.е. имея оригинальные файлы (не подмененные при запуске игры с "объединенного файла") пользователь не сможет войти на мой сервер. Я знаю как это реализовать и соответствующий набор софта так-же имеется. Если хотите подробностей, прошу в ЛС.

Добавлено через 15 минут

Либо как вариант сделать просто подмену файлов в самом клиенте ) Хитро. Просто зашифровать файлы необходимые для захода на сервер другим именем и расширением (непосредственно в клиенте) К примеру запустив оригинальный sacred.exe вы не попадете на мой сервер, т.к. не произойдет подмены. А запустив объединенный, который переименует зашифрованные файлы и подменит оригинальные проблем со входом не будет. При выходе из игры, естественно замена происходит в обратном порядке. Я думаю вы понимаете как это сделать с помощью bat
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
09.07.2015, 22:56
Цитата Сообщение от Malachor Посмотреть сообщение
вместо того что-бы критиковать данный способ предложите свой.
Я уже предложил - указать на баги автору игры, пусть исправляет.
Цитата Сообщение от Malachor Посмотреть сообщение
рассчитано на рядового фаната sacred
Т.о вы ставите честных игроков и читеров в заведомо неравное положение:
Читеры легко обойдут защиту, а честные не смогут и будут заведомо в проигрыше.
Хотя, обычно люди тщеславны, и найденная брешь будет тут же обнародована среди игроков и пользоваться будут все.

Цитата Сообщение от Malachor Посмотреть сообщение
Т.е. имея оригинальные файлы (не подмененные при запуске игры с "объединенного файла") пользователь не сможет войти на мой сервер.
C подменой файла всё просто - запустить батник, получить файлы , потом закрыть сеанс и запустить оригинальный файл.
Если думаете, что можете удалить файлы при закрытии игры, то нет. Игру можно не закрывать, а просто выключить-перегрузить Винду кнопкой и т.п. фигня, которая позволит файлам остаться на диске и файлы будут распространены среди играющих.

P.s. не подумайте, что я пытаюсь быть судьёй в последней инстанции. Просто заранее просчитываю все недостатки вашей защиты. Обижаться не надо, солидные компании за найденные баги платят немалые деньги, а я вам даром
1
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
09.07.2015, 22:58
Когда админил один игровой сервер, чтобы не использовали читы делали очень просто,
понижали версию игры до неактуальной на данный момент, на которую в свободном ходе мало читерских программ.
На своем сайте распространяли сборку игры именно с этой версией. Новую сервак отвергал.
Поскольку мы сами писали на C# родные плагины под игру с целью еще больше удушить читеров,
сервер пользовался (все еще пользуется) большой популярностью.
Разумеется, у Вас другая игра, и сказанное скорее всего Вам не поможет.
0
1 / 1 / 0
Регистрация: 30.06.2015
Сообщений: 32
09.07.2015, 23:47  [ТС]
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Я уже предложил - указать на баги автору игры, пусть исправляет.
Увы, но компания разработчик игры уже распалась "Ascaron Entertainment" после выпуска ими Sacred 2, права были выкуплены другой компанией, которая запорола серию на корню недавно вышедшей Sacred 3 (чистой воды слэшер, не имеющий ничего общего с RPG). Но что-то я увлекся, форум ведь не для обсуждения игровой индустрии. За советы спасибо.
0
1 / 1 / 0
Регистрация: 30.06.2015
Сообщений: 32
10.07.2015, 23:59  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
Ставишь хук на клавиатуру и перехватываешь клавиши. (не знаю для чего перехватывать Ctrl+Alt+Del, похоже на зловред, но таким способом это сочетание не перехватить)
Объясни мне для чего перехватывать Ctrl+Alt+Del? Ни одна игра это сочетание не использует.
По остальным сочетаниям, ставишь LL-хук и в обработчике нажатия пишешь:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Dim prevent As Boolean  ' Флаг запрещения
 
Select Case lParam.VkCode
Case vbKeyF4
   
    If lParam.flags And LLKHF_ALTDOWN Then
        prevent = True
    End If
Case vbKeyTab
   If lParam.flags And LLKHF_ALTDOWN Then
        prevent = True
    End If
Case vbKeyEscape
  If GetAsyncKeyState(vbKeyShift) < 0 And GetAsyncKeyState(vbKeyControl) < 0 Then
        prevent = True
    End If
End Select
 If prevent Then
    LowLevelkbdProc = -1
    Exit Function
End If
Не работает.. Ставлю в форму хук клавиатуры

Visual Basic
1
2
3
4
5
6
Private Sub Form_Load()
  hHook = SetWindowsHookEx(WH_KEYBOARD, AddressOf KeyboardProc, App.hInstance, App.ThreadID)
End Sub
Private Sub Form_Unload(Cancel As Integer)
    UnhookWindowsHookEx hHook
End Sub
В модуль:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Dim prevent As Boolean  ' Флаг запрещения
 
Select Case lParam.VkCode
Case vbKeyF4
   
    If lParam.flags And LLKHF_ALTDOWN Then
        prevent = True
    End If
Case vbKeyTab
   If lParam.flags And LLKHF_ALTDOWN Then
        prevent = True
    End If
Case vbKeyEscape
  If GetAsyncKeyState(vbKeyShift) < 0 And GetAsyncKeyState(vbKeyControl) < 0 Then
        prevent = True
    End If
End Select
 If prevent Then
    LowLevelkbdProc = -1
    Exit Function
End If
Ругается при запуске теста на сроку "lParam" я что-то упускаю?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.07.2015, 23:59
Помогаю со студенческими работами здесь

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

Запрет доступа к файлу для определенного IP
Приветствую. Недавно мой сайт на WP взломали. Похоже обычным перебором. Я его почистил, поменял пароли, но на сайт постоянно ломятся с...

Различия комбинаций клавиш для остановки процесса
или пока не &quot;испортите&quot; поток

Как перехватить системное время для определенного процесса?
Есть процесс. Он использует сис. время для генерации случайных чисел. Вот мне нужно взять это системное время и установить то, которое мне...

Запрет нажатий на объекты
Привет. Есть сцена, на ней сверху вниз летят объекты, на них нужно нажимать чтоб они уничтожались. Так же на ней есть кнопка паузы. Когда я...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru