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

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

06.07.2015, 20:15. Показов 6318. Ответов 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
18030 / 7733 / 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
18030 / 7733 / 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
18030 / 7733 / 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
18030 / 7733 / 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
18030 / 7733 / 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
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru