ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

delphi 6/7 помогите вырубить клаву
  #1  
Старый 18.11.2009, 19:56
Paranoik
Познающий
Регистрация: 23.06.2006
Сообщений: 33
Провел на форуме:
294206

Репутация: 42
Отправить сообщение для Paranoik с помощью ICQ
По умолчанию delphi 6/7 помогите вырубить клаву

Ребят, помогите с кодом, для отключенеи всей клавы при старте проги.. а то в сети нашел несколько способов, но что-то не рабят..
 
Ответить с цитированием

  #2  
Старый 18.11.2009, 20:48
AquaKlaster
Участник форума
Регистрация: 09.03.2009
Сообщений: 178
Провел на форуме:
1605524

Репутация: 523
Отправить сообщение для AquaKlaster с помощью ICQ
По умолчанию

Модуль предназначен для осуществления частичной
блокировки/разблокировки функций клавиатуры и мышки.
Procedure KeyBoardOn - разблокировка (включение) клавиатуры
Procedure KeyBoardOff - блокировка (выключение) клавиатуры
Procedure MouseOn - разблокировка (включение) мышки
Procedure MouseOff - блокировка (выключение) мышки
Код:
unit mklu;

interface

uses
  Windows;

var
  m_OldMHook: HHook = 0;
  k_OldKBHook: HHook = 0;

function KbHook(code: Integer; wparam: Word; lparam: LongInt): LongInt; stdcall;
procedure KeyBoardOn;
procedure KeyBoardOff;
function MouseHook(code: Integer; wparam: Word; lparam: LongInt): LongInt;
  stdcall;
procedure MOUSEON;
procedure MouseOff;

implementation

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 KeyBoardOn;
begin
  if k_OldKbHook <> 0 then
  begin
    UnHookWindowshookEx(k_OldKbHook);
    k_OldKbHook := 0;
  end;
end;

// выключение клавы

procedure KeyBoardOff;
begin
  k_OldKbHook := SetWindowsHookEx(WH_KEYBOARD, @KbHook, HInstance, 0);
end;

function MouseHook(code: Integer; wparam: Word; lparam: LongInt): LongInt;
  stdcall;
begin
  if code < 0 then
    Result := CallNextHookEx(m_oldMHook, code, wparam, lparam)
  else
    Result := 1;
end;

// включение мышки

procedure MOUSEON;
begin
  if m_OldMHook <> 0 then
  begin
    UnHookWindowshookEx(m_OldMHook);
    m_OldMHook := 0;
  end;
end;

// выключение мышки

procedure MouseOff;
begin
  m_OldMHook := SetWindowsHookEx(WH_MOUSE, @MOUSEHook, HInstance, 0);
end;

end.

Пример использования:

uses mklu;

{блокировка(LockIt = true) или разблокировка(LockIt= False) клавы}

procedure LockUnlockKeyboard(LockIt: Boolean);
begin
  if LockIt then
    KeyBoardOFF
  else
    KeyBoardOn;
end;

{блокировка(LockIt = true) или разблокировка(LockIt= False) мышки}

procedure LockUnlockMouse(LockIt: Boolean);
begin
  if LockIt then
    MouseOff
  else
    MouseOn;
end;
 
Ответить с цитированием

  #3  
Старый 18.11.2009, 21:54
transserg
Участник форума
Регистрация: 02.07.2008
Сообщений: 132
Провел на форуме:
1035284

Репутация: 52
Отправить сообщение для transserg с помощью ICQ
По умолчанию

можеш использовать BlockInput из USER32.dll но опят таки частичная блокировка =)

Последний раз редактировалось transserg; 18.11.2009 в 22:12..
 
Ответить с цитированием

  #4  
Старый 20.11.2009, 15:15
Paranoik
Познающий
Регистрация: 23.06.2006
Сообщений: 33
Провел на форуме:
294206

Репутация: 42
Отправить сообщение для Paranoik с помощью ICQ
По умолчанию

Цитата:
Сообщение от AquaKlaster  
Модуль предназначен для осуществления частичной
блокировки/разблокировки функций клавиатуры и мышки.
Procedure KeyBoardOn - разблокировка (включение) клавиатуры
Procedure KeyBoardOff - блокировка (выключение) клавиатуры
Procedure MouseOn - разблокировка (включение) мышки
Procedure MouseOff - блокировка (выключение) мышки
Код:
unit mklu;

interface

uses
  Windows;

var
  m_OldMHook: HHook = 0;
  k_OldKBHook: HHook = 0;

function KbHook(code: Integer; wparam: Word; lparam: LongInt): LongInt; stdcall;
procedure KeyBoardOn;
procedure KeyBoardOff;
function MouseHook(code: Integer; wparam: Word; lparam: LongInt): LongInt;
  stdcall;
procedure MOUSEON;
procedure MouseOff;

implementation

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 KeyBoardOn;
begin
  if k_OldKbHook <> 0 then
  begin
    UnHookWindowshookEx(k_OldKbHook);
    k_OldKbHook := 0;
  end;
end;

// выключение клавы

procedure KeyBoardOff;
begin
  k_OldKbHook := SetWindowsHookEx(WH_KEYBOARD, @KbHook, HInstance, 0);
end;

function MouseHook(code: Integer; wparam: Word; lparam: LongInt): LongInt;
  stdcall;
begin
  if code < 0 then
    Result := CallNextHookEx(m_oldMHook, code, wparam, lparam)
  else
    Result := 1;
end;

// включение мышки

procedure MOUSEON;
begin
  if m_OldMHook <> 0 then
  begin
    UnHookWindowshookEx(m_OldMHook);
    m_OldMHook := 0;
  end;
end;

// выключение мышки

procedure MouseOff;
begin
  m_OldMHook := SetWindowsHookEx(WH_MOUSE, @MOUSEHook, HInstance, 0);
end;

end.

Пример использования:

uses mklu;

{блокировка(LockIt = true) или разблокировка(LockIt= False) клавы}

procedure LockUnlockKeyboard(LockIt: Boolean);
begin
  if LockIt then
    KeyBoardOFF
  else
    KeyBoardOn;
end;

{блокировка(LockIt = true) или разблокировка(LockIt= False) мышки}

procedure LockUnlockMouse(LockIt: Boolean);
begin
  if LockIt then
    MouseOff
  else
    MouseOn;
end;
НЕ рабит она !!! точнее у мя например клава как жила после этого так и живет дальше норм...
 
Ответить с цитированием

  #5  
Старый 20.11.2009, 15:15
Paranoik
Познающий
Регистрация: 23.06.2006
Сообщений: 33
Провел на форуме:
294206

Репутация: 42
Отправить сообщение для Paranoik с помощью ICQ
По умолчанию

Цитата:
Сообщение от transserg  
можеш использовать BlockInput из USER32.dll но опят таки частичная блокировка =)
пробовал.. ну просто чет у мя там блочица все сразу..и клава и мышь.. а над тока клаву.. (((
 
Ответить с цитированием

  #6  
Старый 20.11.2009, 19:24
DeaD_MoroZ
Banned
Регистрация: 03.11.2009
Сообщений: 112
Провел на форуме:
98006

Репутация: 17
Отправить сообщение для DeaD_MoroZ с помощью ICQ
По умолчанию

Код:
library DisableKB;

uses
  Forms,
  Windows,
  Messages,
  HookCommon in 'HookCommon.pas';

{$J+}
const
  Hook: HHook = 0;
  WH_KEYBOARD_LL = 13;
{$J-}

{$R *.res}

function HookProc(nCode: Integer; MsgID: WParam; Data: LParam): LResult; stdcall;
begin
    Result := -1;
end;

procedure DisableKB; stdcall;
begin
  if Hook = 0 then Hook:=SetWindowsHookEx(WH_KEYBOARD_LL,@HookProc,HInstance,0);
end;

procedure EnableKB; stdcall;
begin
  UnhookWindowsHookEx(Hook);
  Hook:=0;
end;

exports
  DisableKB, EnableKB;

begin
end.



unit HookCommon;

interface

uses Windows;

procedure DisableKB; stdcall;
procedure EnableKB; stdcall;

implementation

procedure DisableKB; stdcall; external 'disablekb.DLL';
procedure EnableKB; stdcall; stdcall; external 'disablekb.DLL';

initialization
end.

Последний раз редактировалось slesh; 21.11.2009 в 10:52.. Причина: [code] КОД [/code]
 
Ответить с цитированием

  #7  
Старый 20.11.2009, 19:49
DeaD_MoroZ
Banned
Регистрация: 03.11.2009
Сообщений: 112
Провел на форуме:
98006

Репутация: 17
Отправить сообщение для DeaD_MoroZ с помощью ICQ
По умолчанию

Если клава посажена на разъем PS/2, то можно включать и отключать клавиатуру по мере необходимости (посылка 0ADh в порт 64h отключает клаву, 0AEh включает).
 
Ответить с цитированием

  #8  
Старый 20.11.2009, 23:46
Yokohama
Новичок
Регистрация: 19.11.2009
Сообщений: 8
Провел на форуме:
37031

Репутация: 0
По умолчанию

DeaD_Moroz , если отключать разьём PS/2 то disablekb.DLL не нужен?
 
Ответить с цитированием

  #9  
Старый 21.11.2009, 06:12
DeaD_MoroZ
Banned
Регистрация: 03.11.2009
Сообщений: 112
Провел на форуме:
98006

Репутация: 17
Отправить сообщение для DeaD_MoroZ с помощью ICQ
По умолчанию

Цитата:
Сообщение от Yokohama  
DeaD_Moroz , если отключать разьём PS/2 то disablekb.DLL не нужен?
если посылать 0ADh в порт 64h-то конечно нет(= я написал два примера(= первый-создаёшь библиотеку и пользуешься ей, а второй посылать 0ADh в порт 64h.
 
Ответить с цитированием

  #10  
Старый 21.11.2009, 10:55
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

2 DeaD_MoroZ Нуну, погляжу я на тебя как ты в юзермоде под XP будеш посылать данные в порт. А Таскать драйвер ради этого - глупо.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Литература Delphi Sams С/С++, C#, Delphi, .NET, Asm 2 19.03.2010 19:46
Books PSalm69 Избранное 248 27.10.2009 04:52
Помогите скомпилировать исходник на Delphi cric.cric С/С++, C#, Delphi, .NET, Asm 1 27.05.2009 15:53
ЛЮДИ ПОМОГИТЕ В Delphi Bill С/С++, C#, Delphi, .NET, Asm 16 21.03.2006 04:39



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ