Все вопросы связанные с программированием. Языки программирования. Средства разработки.
Ответить
Аватара пользователя
mitch-aurora
Не в сети
Частый гость
Частый гость
Сообщения: 140
Зарегистрирован: Пн дек 05, 2005 9:08
Откуда: Шахты
Контактная информация:

Помогите с клавой

Сообщение mitch-aurora »

Помогите кто-нибудь, мне нужен код который будет блокировать клаву, очень желательно написанный на VB.net

Заранее большое спасибо!!!

Просто очень надо! :oops:
Чтоб мудро жизнь прожить, знать надобно немоло,
Два важных правила запомни для начала:
Ты лучше голодай, чем что попало есть,
И лучше будь один, чем вместе с кем попало.

(Омар Хайям)

Аватара пользователя
Hank
Не в сети
Почётный форумщик
Почётный форумщик
Сообщения: 4299
Зарегистрирован: Чт май 05, 2005 19:35
Откуда: RnD

Сообщение Hank »

mitch-aurora,
насчёт VB.NET это очень проблемотично, всё равно прийдётся к WinAPI обращать, а для этого писать враппер.
Задача решается так:
Пишешь DLL в которой устанавливаешь (SetWindowsHookEx) и обрабатываешь ловушку WH_KEYBOARD.
пример на Delphi можешь тут глянуть
http://kladovka.net.ru/index.cgi?pid=list&rid=195 правда для твоих целей этот пример надо немного доработать. Примеров на C++ полно в нете.
чтобы заблокировать сообщение - KeyboardProc должна позвращать значение отличное от нуля.
можно ещё использовать WH_KEYBOARD_LL, тогда не прийдётся оформлять код ловушки в виде DLL, но работать будет только на Windows NT/2000/XP.

Ещё глянь в сторону BlockInput.
Люблю повеселиться, особенно пожрать,
Люблю и поработать, особенно поспать )

Аватара пользователя
mitch-aurora
Не в сети
Частый гость
Частый гость
Сообщения: 140
Зарегистрирован: Пн дек 05, 2005 9:08
Откуда: Шахты
Контактная информация:

Сообщение mitch-aurora »

Я понял, слушай через консоль это можно какнить задействовать, ну знаешь типа %windir%\system32\rundll32.exe user32.dll,LockComputer есть такое, мне впринципе хватило и того чтобы это окно не выскакивало, есть ли что-нибудь по типу LockComputer = False?
Чтоб мудро жизнь прожить, знать надобно немоло,
Два важных правила запомни для начала:
Ты лучше голодай, чем что попало есть,
И лучше будь один, чем вместе с кем попало.

(Омар Хайям)

Аватара пользователя
DbIMok
Не в сети
Администратор
Администратор
Сообщения: 8268
Зарегистрирован: Ср янв 28, 2004 7:15

Сообщение DbIMok »

те есть нужно эффект Win+L программно?
%SystemRoot%\system32\rundll32.exe USER32.DLL,LockWorkStation

Аватара пользователя
Hank
Не в сети
Почётный форумщик
Почётный форумщик
Сообщения: 4299
Зарегистрирован: Чт май 05, 2005 19:35
Откуда: RnD

Сообщение Hank »

mitch-aurora,
Если внутри твоей программы нужно, то
LockWorkStation, необходима как минимум win2K.
Люблю повеселиться, особенно пожрать,
Люблю и поработать, особенно поспать )

Аватара пользователя
mitch-aurora
Не в сети
Частый гость
Частый гость
Сообщения: 140
Зарегистрирован: Пн дек 05, 2005 9:08
Откуда: Шахты
Контактная информация:

Сообщение mitch-aurora »

DbIMok,
да

Я написал прожку, она блочить клаву и мышь, но на клаве остаются рабочими только ctrl+alt+del, мне нужно что-бы их убрать тоже!
Чтоб мудро жизнь прожить, знать надобно немоло,
Два важных правила запомни для начала:
Ты лучше голодай, чем что попало есть,
И лучше будь один, чем вместе с кем попало.

(Омар Хайям)

Аватара пользователя
Hank
Не в сети
Почётный форумщик
Почётный форумщик
Сообщения: 4299
Зарегистрирован: Чт май 05, 2005 19:35
Откуда: RnD

Сообщение Hank »

mitch-aurora,
см. LockWorkStation.
Заблокировать ALT+CTRL+DEL можно только через драйвер ядра, по крайней мере в winNT и выше.
Троянца пишем? :twisted:
Люблю повеселиться, особенно пожрать,
Люблю и поработать, особенно поспать )

Аватара пользователя
DbIMok
Не в сети
Администратор
Администратор
Сообщения: 8268
Зарегистрирован: Ср янв 28, 2004 7:15

Сообщение DbIMok »

может проще сделать то что нужно политиками безопасности?

Аватара пользователя
mitch-aurora
Не в сети
Частый гость
Частый гость
Сообщения: 140
Зарегистрирован: Пн дек 05, 2005 9:08
Откуда: Шахты
Контактная информация:

Сообщение mitch-aurora »

DbIMok писал(а):может проще сделать то что нужно политиками безопасности?
не в этом дело, мне нужно просто заблочить клаву с мышей. Мышу я болчу и клаву тоже но единственное что остается это блочить CTRL+ALT+DEL

Вот код который написан в Visual Studio 2005 на Basic'е :
Imports Microsoft.Win32
Public Class Form1
Private Declare Function BlockInput Lib "user32" (ByVal fBlock As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
BlockInput(True)
'wait 10 seconds before unblocking it
Sleep(5000)
'unblock the mouse and keyboard input
BlockInput(False)
' Call AllowKeys(True)

End Sub
Здесь блочиться мыша и клава на 5 сек.

Может кто подскажет как и эти три гребанные клавиши за блочить?
Чтоб мудро жизнь прожить, знать надобно немоло,
Два важных правила запомни для начала:
Ты лучше голодай, чем что попало есть,
И лучше будь один, чем вместе с кем попало.

(Омар Хайям)

Аватара пользователя
DbIMok
Не в сети
Администратор
Администратор
Сообщения: 8268
Зарегистрирован: Ср янв 28, 2004 7:15

Сообщение DbIMok »

mitch-aurora писал(а):Может кто подскажет как и эти три гребанные клавиши за блочить?
тебе Eraser уже сказал. если хочешь подробнее, почитай например это:
http://www.sources.ru/cpp/system/ctrl_a ... inxp.shtml

Ответить