Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > ОС и железо
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.11.2009, 07:03
Аватар для Karsh
Karsh Karsh вне форума
Активный
 
Регистрация: 22.09.2007
Адрес: SPb
Сообщения: 228
Версия Delphi: 7, 2009, XE2
Репутация: 70
Смех Блок на клавиатуру

Хотелось бы узнать, можно ли программно отключить или заблокировать клавиатуру, ну и включить ее потом (мышкой например)?
__________________
Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра.
Ответить с цитированием
  #2  
Старый 26.11.2009, 22:52
b2soft b2soft вне форума
Прохожий
 
Регистрация: 26.11.2009
Сообщения: 8
Репутация: 10
Восклицание

можно нашел в инете, но сам пробовать не рисковал

Отключить клаву:

Код:
var
dirWin: array[0..255] of char;

begin
GetWindowsDirectory(dirWin,255); 
WinExec(PChar(WinDir + ' undll32.exe keyboard,disable'),SW_SHOWNORMAL);
end;

Включить наверное так =)
Код:
var
dirWin: array[0..255] of char;

begin
GetWindowsDirectory(dirWin,255); 
WinExec(PChar(WinDir + ' undll32.exe keyboard,enable'),SW_SHOWNORMAL);
end;

lmikle: Ну чуть-чуть тегов не хватило...
Ответить с цитированием
  #3  
Старый 26.11.2009, 22:53
b2soft b2soft вне форума
Прохожий
 
Регистрация: 26.11.2009
Сообщения: 8
Репутация: 10
Подмигивание

если работает напиши плз, может сам буду использовать =)
Ответить с цитированием
  #4  
Старый 27.11.2009, 03:25
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,029
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

2 минуты на поиск решения в Гугле:

Код:
procedure BlockInput(ABlockInput : boolean); stdcall; external 'USER32.DLL';
...
procedure TForm1.Button1Click(Sender: TObject);
begin
  BlockInput(True);
  Sleep(5000);
  BlockInput(False);
end;

For more
Win32 Programmer's Reference

PS. Не проверял.
Ответить с цитированием
  #5  
Старый 27.11.2009, 03:29
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,029
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Еще туда же:

Цитата:
If you insert next lines at unit and get
function KeyboardProc free from any text your's program will not answer to keyboard...
initialization
begin
CurrKeyEater:=nil;
myhook:= SetWindowsHookEx(WH_KEYBOARD,@KeyboardProc,0,GetCu rrentThreadId);
end;
finalization
begin
UnhookWindowsHookEx(myhook);
CurrKeyEater:=nil;
end;

If you need to block ALL applications - use next format
SetWindowsHookEx(WH_KEYBOARD,@KeyboardProc,0,0);
but function KeyboardProc OUGHT be at DLL!!!

So Only Mouse will work...
Ответить с цитированием
  #6  
Старый 27.11.2009, 08:52
Аватар для Karsh
Karsh Karsh вне форума
Активный
 
Регистрация: 22.09.2007
Адрес: SPb
Сообщения: 228
Версия Delphi: 7, 2009, XE2
Репутация: 70
По умолчанию

b2soft, ваш вариант не работает.
lmikle, первый вариант работает, но бликируется и мышка, а нужно заблокировать только клавиатуру. Второй вариант пока не пробовал, сейчас уже убегать пора, может, вечером опробую.
__________________
Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:38.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter