Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отловить нажатие клавиши, и не отдать его другим приложениям 
:(
    Опции темы
<Spawn>
Дата 11.2.2004, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 1
Всего: 64



Цитата(Tamerlann @ 11.2.2004, 13:45)
Только-что попробовал то, что предложил <Spawn> - всё просто великолепно работает!!!! Большое! спасибо, <Spawn>. smile.gif  smile.gif  smile.gif  smile.gif  smile.gif  biggrin.gif  biggrin.gif  tounge.gif

Но всё же, что это за Result?

Вот и хорошо))) Result - это результат выполнения функции(иначе говоря это переменная ассоциированная с результатом выполнения функции и имеющая тип указаный при определении функции, например function a: Boolean;), в данном случае функции KeyBoardProc. Можно было бы воспользоваться паскалевским способом и написать KeyBoardProc := 1, но так более наглядно))

Это сообщение отредактировал(а) <Spawn> - 11.2.2004, 21:57


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
BLACK_KOT
Дата 3.11.2007, 00:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 305
Регистрация: 20.12.2006

Репутация: нет
Всего: -1



Цитата(<Spawn> @ 11.2.2004,  21:51)
Я не помню как обстоят дела с WH_KEYBOARD, но для WH_CBT хука, в зависимости от результата выполнения функции хука, разрешается или запрещается операция. Так что попробуй что то типа этого:

Код
function KeyBoardProc(Code: integer; _wParam: WPARAM; _lParam: LPARAM): LongInt; stdcall;
begin
  ...
  //Если нужно отменить нажатие, то 
  Result := 1;
  //...Передать управление следующему хуку в цепочке хуков
  CallNextHookEx(...);
end;

а если у меня нет цепочки хуков- а тока 1 хук? куда управление передавать?

вот мой код:
Код

unit Unit1;

interface

uses
  Windows, Messages, Forms;


type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function HookProc(Code: integer; WParam: word; LParam: Longint):longint stdcall;
var
msg: PEVENTMSG;
begin
msg := Pointer(LParam);
if msg.message=WM_KEYDOWN then keybd_event(79, MapvirtualKey(79,0),0,0)
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
SetWindowsHookEx(WH_JOURNALRECORD, @HookProc, HInstance, 0);
end;


end.


прога имитирует нажатие буквы О, а как отменить нажатие реальной клавиши?


--------------------
                       .. я - демо версия Бога от Microsoft..
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0434 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.