Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.96/127: Рейтинг темы: голосов - 127, средняя оценка - 4.96
Dimon-zmey
0 / 0 / 0
Регистрация: 30.12.2009
Сообщений: 12
#1

Как заблокировать клавиатуру?

02.01.2010, 19:44. Просмотров 22992. Ответов 21
Метки нет (Все метки)

Подскажите, как заблокировать клавиатуру (мышку блокировать не нужно). Я в поисковике искал, но ничего нормально работающее не нашел!!! Мне нужно для win xp/vista/7
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.01.2010, 19:44
Ответы с готовыми решениями:

Как программно заблокировать клавиатуру?
Множество разных писаний имеется на просторах сети, но все они не то. Товарищи...

Как заблокировать диспетчер задач, клавиатуру, мышь, и все остальное
Уважвемые люди!!! Желательно кидайте прямые ссылки на скачивание готовых прог...

Заблокировать клавиатуру и мышь
Всем привет. Хотел подшутить над другой Заблокировать клаву и мышку написать...

Как задействовать клавиатуру?
Вот мое простое приложение . Когда вводишь в компонент Edit ответ, то чтобы...

Как отключить клавиатуру
Здравствуйте скажи те пожалуйста как отключить клаву через хуки ну или ещё как...

21
DannerDOS
Programmer
39 / 39 / 6
Регистрация: 07.04.2009
Сообщений: 187
02.01.2010, 21:30 #2
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  m_OldMHook:HHook = 0;
  k_OldKBHook:HHook = 0;
 
implementation
 
{$R *.dfm}
 
function KbHook(code: Integer; wparam: Word; lparam: LongInt): LongInt;stdcall;
begin
  if code < 0 then Result := CallNextHookEx(k_oldKbHook, code, wparam, lparam)
  else Result := 1;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  k_OldKbHook := SetWindowsHookEx(WH_KEYBOARD, @KbHook, HInstance, 0)
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
  if k_OldKbHook <> 0 then begin
    UnHookWindowshookEx(k_OldKbHook);
    k_OldKbHook := 0;
  end;
end;
 
end.
0
Dimon-zmey
0 / 0 / 0
Регистрация: 30.12.2009
Сообщений: 12
02.01.2010, 22:39  [ТС] #3
У меня, на win 7, не работает
0
EFEFEFEF
36 / 13 / 2
Регистрация: 12.10.2009
Сообщений: 421
02.01.2010, 22:45 #4
В from
Delphi
1
2
//В собити нажатии клавиши пиши так
Key:=#0;
И у тебя вся клава работать не будет
0
Dimon-zmey
0 / 0 / 0
Регистрация: 30.12.2009
Сообщений: 12
02.01.2010, 23:19  [ТС] #5
Увы, но тоже не работает, может я что-то не правильно делаю?
Я нашел чуть другой способ, он не блокирует всю клаву (что плохо), но блокирует диспетчер задач и справляется с этим очень хорошо, так как блокирует в win xp/vista/7
Вот сам способ:
// Блокировка
Delphi
1
2
3
4
5
6
7
8
9
10
var
  reg: TRegistry;
begin
  reg := TRegistry.Create;
  reg.RootKey := HKEY_CURRENT_USER;
  reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Policies\System', True);
  reg.WriteString('DisableTaskMgr', '1')
  reg.CloseKey;
  Registry.Free;
end;
// Разблокировка
Delphi
1
2
3
4
5
6
7
8
9
10
11
var
  reg: TRegistry;
begin
  reg:=TRegistry.Create;
  reg.RootKey:=HKEY_CURRENT_USER;
  reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Policies', true);
  If Reg.ValueExists ('System') then
  reg.DeleteValue('System');
  reg.CloseKey;
  reg.Free;
  end;
0
EFEFEFEF
36 / 13 / 2
Регистрация: 12.10.2009
Сообщений: 421
02.01.2010, 23:35 #6
Мойспособ работает такёё В программе если нажимаешь кнопку клавы он не выводит ееёё тоесть блакирует всю клаву и ечего не делает
0
deathNC
1891 / 1004 / 123
Регистрация: 08.12.2009
Сообщений: 2,792
Записей в блоге: 2
02.01.2010, 23:37 #7
хм.. возможно в политиках реестра что-тои есть для блокировки клавы....
но в Windows 7 и Windows XP политики различаются... допустим, я умею блокировать Диспетчер Задач в XP, а вот как в 7 это сделать не знаю...

а тебе вообще для всех процессов клаву блокировать надо, или только для какогото конкретного?
0
Dimon-zmey
0 / 0 / 0
Регистрация: 30.12.2009
Сообщений: 12
02.01.2010, 23:43  [ТС] #8
Цитата Сообщение от deathNC Посмотреть сообщение
хм.. возможно в политиках реестра что-тои есть для блокировки клавы....
но в Windows 7 и Windows XP политики различаются... допустим, я умею блокировать Диспетчер Задач в XP, а вот как в 7 это сделать не знаю...

а тебе вообще для всех процессов клаву блокировать надо, или только для какогото конкретного?
Способ который я привел выше, работает как на Windows 7 так и на Windows XP

Мне нужно блочить клаву для всех процессов и желательно через реестр, так как нужно чтоб клава блочилась и при выключенной проге и при загрузке с безопасного режима!
0
deathNC
1891 / 1004 / 123
Регистрация: 08.12.2009
Сообщений: 2,792
Записей в блоге: 2
02.01.2010, 23:47 #9
Цитата Сообщение от Dimon-zmey Посмотреть сообщение
Способ который я привел выше, работает как на Windows 7 так и на Windows XP

Мне нужно блочить клаву для всех процессов и желательно через реестр, так как нужно чтоб клава блочилась и при выключенной проге и при загрузке с безопасного режима!
Странно, у меня Семёрка не реагирует на эту политику... правда я свою прогу для редактирования реестра писал ещё на Delphi 7, и компилил в среде XP, но я думаю это не должно влиять...

попытаюсь сейчас что-нибудь нарыть для тебя!
0
Dimon-zmey
0 / 0 / 0
Регистрация: 30.12.2009
Сообщений: 12
03.01.2010, 00:21  [ТС] #10
Цитата Сообщение от deathNC Посмотреть сообщение
Странно, у меня Семёрка не реагирует на эту политику... правда я свою прогу для редактирования реестра писал ещё на Delphi 7, и компилил в среде XP, но я думаю это не должно влиять...

попытаюсь сейчас что-нибудь нарыть для тебя!
Спасибо!!!

Я очень извиняюсь, мой пример не очень правильный! Вот я написал прогу для блока/разблокировки диспетчера задач
Исходный код: Исходный код.zip
Сама программа: Блок.zip
0
Dimon-zmey
0 / 0 / 0
Регистрация: 30.12.2009
Сообщений: 12
03.01.2010, 00:35  [ТС] #11
Но плохо то, что этот код не работает без прав админа((( А это так важно! Может кто знает как обойти систему защиты и запустить без прав админа?
0
EFEFEFEF
36 / 13 / 2
Регистрация: 12.10.2009
Сообщений: 421
03.01.2010, 10:19 #12
А чем мой спсоб плох
0
John_Pa9JIbHuK
Добрый самаритянин
1101 / 617 / 136
Регистрация: 31.03.2009
Сообщений: 2,568
03.01.2010, 13:35 #13
Delphi
1
2
3
4
5
6
7
8
9
procedure BlockInput(ABlockInput: boolean); stdcall; external 'USER32.DLL';
procedure TForm1.Button1Click(Sender: TObject);
begin
BlockInput(True);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
BlockInput(False);
end;
Добавлено через 5 минут
CAD не блокирует
0
Dimon-zmey
0 / 0 / 0
Регистрация: 30.12.2009
Сообщений: 12
03.01.2010, 18:35  [ТС] #14
Цитата Сообщение от John_Pa9JIbHuK Посмотреть сообщение
Delphi
1
2
3
4
5
6
7
8
9
procedure BlockInput(ABlockInput: boolean); stdcall; external 'USER32.DLL';
procedure TForm1.Button1Click(Sender: TObject);
begin
BlockInput(True);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
BlockInput(False);
end;
У меня пишет ошибку в процедуре:
procedure BlockInput(ABlockInput: boolean); stdcall; external 'USER32.DLL';

Ошибка: Field definition not allowed after methods or properties

Может это из-за win 7? Киньте пожалуйста весь исходный код!

Добавлено через 15 минут
Все у меня все заработало, но мне нужно, чтоб и после завершения проги клава была заблочина(((
0
deathNC
1891 / 1004 / 123
Регистрация: 08.12.2009
Сообщений: 2,792
Записей в блоге: 2
03.01.2010, 19:12 #15
может, тебе стоит скрипт сделать?
0
Dimon-zmey
0 / 0 / 0
Регистрация: 30.12.2009
Сообщений: 12
03.01.2010, 19:27  [ТС] #16
какой?

Добавлено через 2 минуты
мне нужно, чтоб клава не работала даже после перезагрузки компа...
0
John_Pa9JIbHuK
Добрый самаритянин
1101 / 617 / 136
Регистрация: 31.03.2009
Сообщений: 2,568
03.01.2010, 22:01 #17
мне нужно, чтоб клава не работала даже после перезагрузки компа...
Тут нужно с реестром работать Либо поставить прогу которая будет ее отключать в автозапуск либо в реестре просто отключать
0
Dimon-zmey
0 / 0 / 0
Регистрация: 30.12.2009
Сообщений: 12
03.01.2010, 22:11  [ТС] #18
А как отключить клаву через реестр? Так как мне нужно, чтоб клава отключалась сразу же, как только осуществится вход в систему (после ввода пароля на вход, если он есть), а если через автозапуск, то пользователь может успеть её оттуда или успеет войти в реестр и тем более проге которая отключает клаву, нужны права админа (UAC).
0
M128K145
Эксперт JavaЭксперт С++
8324 / 3544 / 420
Регистрация: 03.07.2009
Сообщений: 10,708
03.01.2010, 22:38 #19
Dimon-zmey, а для чего нужна эта программа?
0
Dimon-zmey
0 / 0 / 0
Регистрация: 30.12.2009
Сообщений: 12
03.01.2010, 22:56  [ТС] #20
Я сделал программу из двух частей. 1-клиентская часть, 2- серверная. Программа сделана для защиты компьютера от детей, когда ты идешь на работу. В 1-ю программу пользователь записывает время (до скольки, чтоб комп не включался, например: с 8 утра до 20 вечера следующего или текущего дня) и эта прога записывает данные в реестр и выключает комп. 2-я прога автомотически запускается (через реестр), проверяет данные и если время еще не прошло, то выключает комп. Но вот проблема, если в автозапуске стоит много программ, то она запускается не сразу и можно её завершить с процессов, также можно успеть зайти в реестр и удалить данные, поэтому я и хочу, чтоб была заблокирована клава, но как это сделать я не знаю... после проверки времени и если время прошло, то блок с клавы снимается и удаляются данные с реестра. Но еще одна беда - это UAC в win vista/7. Вот и все.
0
03.01.2010, 22:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.01.2010, 22:56

Как отключить клавиатуру и мышь
Ктр-нибудь подскажите, как заблокировать клавиатуру и мышь. BlockInput не...

Как отключить клавиатуру при запуске приложения
А как отключить только клавиатуру. Т.е при запуске программы клавиатура должна...

как заблокировать антивирус в делфи?
привет всем...нужна помощь необходимо отключить антивирус на ос: Windows хр и...


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

Или воспользуйтесь поиском по форуму:
20
Закрытая тема Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru