Блоуировка клавы

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

Блоуировка клавы

Сообщение gnusmas » 06.04.2003 (Вс) 20:08

Хотелось бы узнать: можно ли как-нибудь заблокировать (отключить) клаву (а можно еще и мышку или монитор)?

Trojan Lord
Обычный пользователь
Обычный пользователь
 
Сообщения: 66
Зарегистрирован: 05.04.2003 (Сб) 19:07

Сообщение Trojan Lord » 06.04.2003 (Вс) 20:33

Добавьте на форму CommandButton и TextBox. При однократном нажатии на кнопку, попытайтесь набрать какой-либо текст. Нажмите второй раз, попробуйте...

Dim FlagKeyb As Boolean

Private Sub Command1_Click()
FlagKeyb = Not FlagKeyb
If FlagKeyb Then
Command1.Caption = "Отключить"
Else
Command1.Caption = "Включить"
End If
Text1.SetFocus
End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If FlagKeyb Then
Else
KeyCode = 0
End If
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
If FlagKeyb Then
Else
KeyAscii = 0
End If
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
If FlagKeyb Then
Else
KeyCode = 0
End If
End Sub

Private Sub Form_Load()
FlagKeyb = True
Command1.Caption = "Отключить"
End Sub

gnusmas
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 26.03.2003 (Ср) 18:02

Сообщение gnusmas » 06.04.2003 (Вс) 20:42

Что-то не получается. Может такой трюк не проходит на Win XP?

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2056
Зарегистрирован: 25.11.2002 (Пн) 20:03

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

Сообщение ALX_2002 » 06.04.2003 (Вс) 20:50

gnusmas писал(а):Хотелось бы узнать: можно ли как-нибудь заблокировать (отключить) клаву (а можно еще и мышку или монитор)?



Код с allapi.net....
Это полная блокировка клавы и мыши..
У меня даже в XP пашет, хотя по идее не должно. :)
Код копируй в форму.

Private Declare Function BlockInput Lib "user32" (ByVal fBlock As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Form_Activate()
'KPD-Team 2000
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@Allapi.net
DoEvents
'block the mouse and keyboard input
BlockInput True
'wait 10 seconds before unblocking it
Sleep 1000
'unblock the mouse and keyboard input
BlockInput False
End Sub

Trojan Lord
Обычный пользователь
Обычный пользователь
 
Сообщения: 66
Зарегистрирован: 05.04.2003 (Сб) 19:07

Сообщение Trojan Lord » 06.04.2003 (Вс) 21:06

рульная вещь :)

gnusmas
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 26.03.2003 (Ср) 18:02

Сообщение gnusmas » 06.04.2003 (Вс) 21:34

Да, круто. Только если жмешь CTRL+ALT+DEL все включается обратно.

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2056
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 07.04.2003 (Пн) 17:48

gnusmas писал(а):Да, круто. Только если жмешь CTRL+ALT+DEL все включается обратно.


Ну блииииин... Ну ты ж наверное сможешь написать прогу по закрытию окна диспетчера задач... или помочь ? :wink:

ЭТО Ж ПРОЩЕ НЕКУДА !

gnusmas
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 26.03.2003 (Ср) 18:02

Сообщение gnusmas » 07.04.2003 (Пн) 19:37

Да, помоги, пожалуйста. Я просто Бейсик совсем недавно изучать начал.

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 07.09.2003 (Вс) 19:30

Просто нужно отключить CTRL+ALT+Del? Ну и на всякий случай ALT+TAB
Код: Выделить всё
Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As Long) As Long
Private Const SPI_SCREENSAVERRUNNING = 97&
Public Sub AllowKeys(bParam As Boolean)
Dim lRetVal As Long, bOld As Boolean
lRetVal = SystemParametersInfo(SPI_SCREENSAVERRUNNING, bParam, bOld, 0&)
End Sub
Private Sub Form_Load()
Call AllowKeys(True) 'блокировка сочетаний
End Sub
Private Sub Form_Unload(Cancel As Integer)
Call AllowKeys(False) 'разблокировка сочетаний
End Sub

'ВАРИАНТ 2

'без дополнительной подпрограммы
'Добавьте два элемента CommandButton. Первая кнопка блокирует сочетание клавиш, вторая - разрешает.
Const SPI_SCREENSAVERRUNNING = 97
Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" _
(ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni As Long) As Long
Private Sub Command1_Click()
Call SystemParametersInfo(SPI_SCREENSAVERRUNNING, True, "1", 0)
End Sub
Private Sub Command2_Click()
Call SystemParametersInfo(SPI_SCREENSAVERRUNNING, False, "1", 0)
End Sub
Private Sub Form_Unload(Cancel As Integer)
Call SystemParametersInfo(SPI_SCREENSAVERRUNNING, False, "1", 0)
End Sub

_NeoN_
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 178
Зарегистрирован: 14.08.2003 (Чт) 9:48
Откуда: Новосибирск

Сообщение _NeoN_ » 08.09.2003 (Пн) 16:34

кое каким местом чую что вирус пишет :wink: ибо сам сказал что недавно басик учить начал=)
но решение всех проблем мне понравилось =) всем пятерки

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 10.09.2003 (Ср) 23:30

Да пусть пишет...всеравно у него ничего серьёзного не получится...т.к. он сам сказа что бейсик недавно учит. :lol:

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 12.09.2003 (Пт) 18:58

2 Ramzes:
У меня Win XP Professional и ни один из вариантов не пашет. :?
Нет меня больше

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 13.09.2003 (Сб) 9:50

Незнаю что и предложить...У меня тоже WinXP , только Home Edition. И все работает безотказно...Ну есть конечно вещи...Например комп програмными средствами вырубить не получается...А вот старушка 98 та все принимает... И вообще я не помню чтоб на 98 что-то не работало...Так что если HDD больше 20 Гб. поставь паралельно 2 системы...Так что 98 была...На ней делай все что душе угодно...Спасибо конечно Microsoft за VB НО XP!!! надо доделывать :!:


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

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

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

    TopList