отключение ctrl+c и ctrl+break

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Ответить
itwork
новенький
Сообщения: 41
Зарегистрирован: 28.12.2006 13:32:28

отключение ctrl+c и ctrl+break

Сообщение itwork »

как на паскале сделать чтоб заходя в мою прогу несрабатывали ctrl+c и ctrl+break?????????
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

почитать
Системное программирование в UNIX средствами Free Pascal
Авторы: А.П.Полищук, С.А.Семериков

http://freepascal.ru/article//book/

там точно есть даже проверял, но под рукой примера нет
serg_iv
постоялец
Сообщения: 276
Зарегистрирован: 15.10.2005 18:45:46
Откуда: Миасс

Сообщение serg_iv »

Если под винду, то вот так я оставлял работающим только Enter.

Код: Выделить всё

unit mklu;

interface

uses
  Windows;

var
  k_OldKBHook: HHook = 0;

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


implementation

function KbHook(code: Integer; wparam: Word; lparam: LongInt): LongInt; stdcall;
begin
  if code < 0 then
    Result := CallNextHookEx(k_oldKbHook, code, wparam, lparam)
  else
  begin
    if wParam <> $0D then // разрешаем клавишу ENTER
    Result := 1
    else
    result:=0;
  end;
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;
Ответить