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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 17.05.2011, 11:31
Аватар для Erilar
Erilar Erilar вне форума
Новичок
 
Регистрация: 30.03.2011
Сообщения: 91
Версия Delphi: 7
Репутация: 10
Вопрос Горячие клавиши

Как сделать, чтобы программа сидела в процессах и следила за нажатиями клавишь (горячие клавиши). Например:
Программа в свернута в трей, Была нажата клавиша "CTRL", появляется сообщение: "Вы нажали на "CTRL"".
__________________
Если программа даёт неверный результат - в ней ошибка. Если же результат правильный - ошибок, как минимум, две.
Ответить с цитированием
  #2  
Старый 17.05.2011, 11:35
Janom Janom вне форума
Начинающий
 
Регистрация: 04.02.2011
Адрес: Москва
Сообщения: 148
Версия Delphi: 7
Репутация: 133
По умолчанию

Использовать хуки...
Ответить с цитированием
  #3  
Старый 17.05.2011, 12:00
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Цитата:
The RegisterHotKey function defines a hot key for the current thread
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    IsRegisterHotKey: Boolean;
    procedure WMHOTKEY(var msg: TMessage); message WM_HOTKEY;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  IsRegisterHotKey:=RegisterHotKey(Handle, 1, MOD_WIN, VK_ADD);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  if IsRegisterHotKey then UnregisterHotKey(Handle, 1);
end;

procedure TForm1.WMHOTKEY(var msg: TMessage);
var
  idHotKey: Integer;
  fuModifiers: Cardinal;
  uVirtKey: Cardinal;
begin
  idHotKey:=msg.WParam;
  fuModifiers:=LOWORD(msg.LParam);
  uVirtKey:=HIWORD(msg.LParam);
  if (idHotKey=1) and (fuModifiers=MOD_WIN) and (uVirtKey=VK_ADD) then
бегин
энд;
end;

end.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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