Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 179, средняя оценка - 4.93
Dimon-zmey
0 / 0 / 0
Регистрация: 30.12.2009
Сообщений: 12
#1

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

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

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

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

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

Заблокировать клавиатуру и мышь - Delphi
Всем привет. Хотел подшутить над другой Заблокировать клаву и мышку написать что то вроде "Все от форматируется через n секунд" но у...

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

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

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

21
DannerDOS
Programmer
39 / 39 / 3
Регистрация: 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 / 1
Регистрация: 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 / 1
Регистрация: 12.10.2009
Сообщений: 421
02.01.2010, 23:35 #6
Мойспособ работает такёё В программе если нажимаешь кнопку клавы он не выводит ееёё тоесть блакирует всю клаву и ечего не делает
0
deathNC
1891 / 1004 / 27
Регистрация: 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 / 27
Регистрация: 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 / 1
Регистрация: 12.10.2009
Сообщений: 421
03.01.2010, 10:19 #12
А чем мой спсоб плох
0
John_Pa9JIbHuK
Добрый самаритянин
1101 / 617 / 33
Регистрация: 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 / 27
Регистрация: 08.12.2009
Сообщений: 2,792
Записей в блоге: 2
03.01.2010, 19:12 #15
может, тебе стоит скрипт сделать?
0
03.01.2010, 19:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.01.2010, 19:12
Привет! Вот еще темы с ответами:

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

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

как заблокировать антивирус в делфи? - Delphi
привет всем...нужна помощь необходимо отключить антивирус на ос: Windows хр и далее антивирус ЛЮБОЙ! .... я пишу программу и дошёл...

Как у Image заблокировать кликабельность - Delphi
Как сделать чтобы после одного клика Image блокировался для кликов?(без потери картинки)


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

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

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