Блокировка клавиатуры и мыши

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
parserdcc
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 17.10.2009 (Сб) 7:05

Блокировка клавиатуры и мыши

Сообщение parserdcc » 01.07.2011 (Пт) 18:53

Здравствуйте!
Для начала, опишу ситуацию. На лето переехал я в деревню. Отдохнуть от компьютерных технологий и т.д. Но не тут то было. В деревне народ "продвинутый". Сделал сеть (12 компов). Выход в Инет через спутник. В здании почты сделал "инет-кафе" :))

У каждого "клиента" стоит моя прога, которая просто считает трафик. Именно Инета.

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

Разумеется, прога будет стоять у меня на компе, которая будет регулировать потребление трафика.

ЗЫ. Прокси всякие не надо рекомендовать. Мне интересен сам процесс программирования.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Блокировка клавиатуры и мыши

Сообщение Хакер » 01.07.2011 (Пт) 19:00

Почему ты считаешь, что заблокированную клавиатуру и мышь нельзя разблокировать?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 01.07.2011 (Пт) 20:05

parserdcc писал(а):Как удалённому компу заблокировать клаву и мышь.

Про удалённый не знаю. Но можно выполнить на нём код, который и заблокирует.
Код: Выделить всё
Private Declare Function BlockInput Lib "user32" (ByVal fBlock As Long) As Long
BlockInput True  ' Заблокировать
BlockInput False ' Снять
Нашёл тут: http://www.vbfaq.ru/2008/09/kak-zablokirovat-myshku-i-klaviaturu-na-vremya/
Обращаю внимание, что если программа завершится, не сняв блокировку, то блокировка останется.

Пример программы:
Код: Выделить всё
Option Explicit
Private Declare Function BlockInput Lib "user32" (ByVal fBlock As Long) As Long

Public Sub Main()
  BlockInput True
  WaitSomeTime
  BlockInput False
End Sub

Private Sub WaitSomeTime()
  Dim Q As Integer, W As Integer, E As Integer
  For Q = 1 To 1024
    For W = 0 To 1024
      For E = 0 To 1024
        Swap Q, W
        Swap W, E
        Swap E, Q
        Swap Q, W
        Swap W, E
        Swap E, Q
        Swap Q, W
        Swap W, E
        Swap E, Q
      Next E
    Next W
  Next Q
End Sub

Private Sub Swap(ByRef A As Integer, ByRef B As Integer)
  A = A Xor B
  B = A Xor B
  A = A Xor B
End Sub


Хакер писал(а):Почему ты считаешь, что заблокированную клавиатуру и мышь нельзя разблокировать?

А как её разблокировать без клавиатуры и мыши? Если только заранее запустить программу, которая в цикле будет снимать блокировку.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Блокировка клавиатуры и мыши

Сообщение Хакер » 01.07.2011 (Пт) 20:19

Qwertiy писал(а):А как её разблокировать без клавиатуры и мыши? Если только заранее запустить программу, которая в цикле будет снимать блокировку.

Лол.
Блокировка, которую ты предложил, снимается нажатием Ctrl+Alt+Del.
Ресурсы вроде вбфакью вообще не нужно посещать, это рассадник дезинформации и пропаганды порочных методов.

Нормальную блокировку обеспечит создание второго десктопа и переключение на него. Но это глупо: вы должны уважать права клиента, дав ему возможность закрыть всё то, что он понаоткрывал. Закрыть окна, удалить куки, отменить автологин.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 01.07.2011 (Пт) 20:27

Хакер писал(а):Блокировка, которую ты предложил, снимается нажатием Ctrl+Alt+Del.

Не знал... Ладно, тогда так:
Код: Выделить всё
Do
  BlockInput True
Loop

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: Блокировка клавиатуры и мыши

Сообщение FireFenix » 01.07.2011 (Пт) 20:40

Qwertiy писал(а):
Хакер писал(а):Блокировка, которую ты предложил, снимается нажатием Ctrl+Alt+Del.

Не знал... Ладно, тогда так:
Код: Выделить всё
Do
  BlockInput True
Loop

Прочитать мдн до конца или вообще прочитать не судьба?
Код: Выделить всё
The system will unblock input in the following cases:
    The thread that blocked input unexpectedly exits without calling BlockInput with fBlock set to FALSE. In this case, the system cleans up properly and re-enables input.
    The user presses CTRL+ALT+DEL or the system invokes the Hard System Error modal message box (for example, when a program faults or a device fails).


Для таких целей существуют уже созданные программы, которые лочат/изменяют/подменяют интерфейс виндовс, хоть ты мышку с клавиатурой крути, хоть не крути тебе ничего не будет доступно после окончания времени или команды с сервака
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 01.07.2011 (Пт) 20:48

FireFenix писал(а):Прочитать мдн до конца или вообще прочитать не судьба?
Код: Выделить всё
The system will unblock input in the following cases:
    The thread that blocked input unexpectedly exits without calling BlockInput with fBlock set to FALSE. In this case, the system cleans up properly and re-enables input.
    The user presses CTRL+ALT+DEL or the system invokes the Hard System Error modal message box (for example, when a program faults or a device fails).

1. "unexpectedly exits", а при нормальном завершении блокировка остаётся. Проверено.
2. Ну да, снимается при Ctrl+Alt+Del, но выполнение в цикле тут же накладывает блокировку повторно, поэтому ничего сделать нельзя.
3. Про критические ошибки вообще забыть можно. Хотя не факт, что с ними не будет так же, как в пункте 2.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Блокировка клавиатуры и мыши

Сообщение Хакер » 01.07.2011 (Пт) 21:28

Qwertiy писал(а):2. Ну да, снимается при Ctrl+Alt+Del, но выполнение в цикле тут же накладывает блокировку повторно, поэтому ничего сделать нельзя.

Ты прикидываешься или нет?

Это даже хуже, чем те одноклеточные программисты, которые для того, чтобы сделать окно «поверх всех» остервенело вытаскивают его на передний план в цикле.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Блокировка клавиатуры и мыши

Сообщение ger_kar » 01.07.2011 (Пт) 22:17

Если важен учет трафика, то блокировка сама по себе полный отстой, ее конечно можно использовать как дополнение, но как основное средство она не годится. Опишу ситуацию: клиент чего нибудь качает, время вышло, сработала блокировка, клиент ушел, закачка продолжилась, и трафик тю.тю, и даже если трафик безлимит, то 3-4 компа оставленных таким образом забьют весь канал. Знаю не по наслышке, ибо у самого такое заведение уже 9 лет. Для исключения подобного явления, лучше блокировать порты. Т.е. должен быть блокировщик портов с гибкой настройкой. Как вариант, можно
удалять/добавлять маршрут 0.0.0.0 в таблицу маршрутизации.
Хакер писал(а):Нормальную блокировку обеспечит создание второго десктопа и переключение на него.
Кстати довольно действенный метод.
И здесь на форуме мне встречалось, как это осуществить. У меня например используются три метода, блокировка портов, блокировка клавы и мыши, и заставка. Пример такой реализации программа компьютерный зал. Можно скачать демку, загнать ее в отладчик и посмотреть какие она делает API вызовы.
Qwertiy писал(а):2. Ну да, снимается при Ctrl+Alt+Del, но выполнение в цикле тут же накладывает блокировку повторно, поэтому ничего сделать нельзя.
Если уж и юзать данный метод, то только не в цикле.
Завтра комп зал домой принесу, гляну что там юзается, потом напишу, что удасться нарыть.
Бороться и искать, найти и перепрятать

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Блокировка клавиатуры и мыши

Сообщение Хакер » 01.07.2011 (Пт) 23:03

ger_kar писал(а):Т.е. должен быть блокировщик портов с гибкой настройкой. Как вариант, можно
удалять/добавлять маршрут 0.0.0.0 в таблицу маршрутизации.

Ограничение и подсчёт нельзя делать на целевой машине. Тут надо-то — машину с FreeBSD и ipfw. Причём это вполне себе может быть машина администратора клуба.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Блокировка клавиатуры и мыши

Сообщение ger_kar » 02.07.2011 (Сб) 7:46

Хакер писал(а):Ограничение и подсчёт нельзя делать на целевой машине.

parserdcc писал(а): Как удалённому компу заблокировать клаву и мышь. Например, когда трафик инета уже закончился.

Ну видимо машина с которой все управляется уже имеется.
Бороться и искать, найти и перепрятать

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Блокировка клавиатуры и мыши

Сообщение ger_kar » 02.07.2011 (Сб) 18:18

Ну вот посмотрел коммерческая програма "Компьютерный зал" для блокировки клавиатуры и мыши "Function BlockInput Lib "user32" не использует однозначно. В программе юзается "SetWindowsHookEx Lib "user32", которой устанавливаются хуки на события мыши и клавиатуры. Как это сделать инфы в нэте море, способ как установить хук в VB описывается на этом форуме. Во время блокировки, ресурсы процессора практически не используются.
Бороться и искать, найти и перепрятать


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 48

    TopList