4kusNick
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору MrGalaxy А ты не пробовал ловить код клавиши по-другому? Например, так: Код: unit MainForm; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TMain = class(TForm) Label1: TLabel; procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); private { Private declarations } public { Public declarations } end; var Main: TMain; implementation {$R *.dfm} procedure TMain.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin Label1.Caption := IntToStr(Key); Key := 0; end; end. | Понятно, что такой способ не прокатит именно для фонового перехвата, но все-же, может так получится отловить нажатие. Также попробуй GetAsyncKeyState заюзать в очень низкоинтервальном цикле. А если тебе нужно отрубать кнопку выключения например в то время, пока запущен твой перехватчик, то наверное, грамотнее будет, если ты сделаешь как раз отключение реакции на нажатие этой кнопки, чтобы автоматом в винде ставилось действие по нажатию кнопок сна\выключения питания и т.д. Это будет грамотнее с той точки зрения, что вдруг, у кого-нить все-таки коды отличаются? | Всего записей: 343 | Зарегистр. 13-06-2007 | Отправлено: 06:08 17-12-2007 | Исправлено: 4kusNick, 06:12 17-12-2007 |
|