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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 01.08.2013, 14:12
Gareth Gareth вне форума
Активный
 
Регистрация: 21.03.2013
Адрес: Приднестровье
Сообщения: 202
Версия Delphi: Delphi 7
Репутация: 10
Печаль Объясните, как сделать несколько горячих клавиш

Здравствуйте!
По своим нуждам, делаю себе программу, что бы уменьшала/увеличивала громкость системы.
Программа будет находится в трее, по этому надо горячие клавиши...
Поискав в интернете, нашел как делать эти горячие клавиши, но получается только одна! Вернее только на одно событие...

Код:
Type
 procedure F1(var Message:TMessage);message WM_HOTKEY;
...
...
procedure TForm1.FormCreate(Sender: TObject);
begin
RegisterHotKey(Handle,0,MOD_CONTROL,VK_DOWN);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
UnRegisterHotKey(Handle,0);
end;


procedure TForm1.F1(var Message: TMessage);
begin
{И тут уже пишется код, который я хочу...}
keybd_event(VK_VOLUME_DOWN, 0, 0, 0);
keybd_event(VK_VOLUME_DOWN, 0, KEYEVENTF_KEYUP, 0);
end;

Горячие клавиши получается - CTRL+Стрелка вниз.
Как добавить еще горячие клавиши ????
Не могу понять.
Ответить с цитированием
  #2  
Старый 01.08.2013, 14:59
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
unit Unit1;

interface

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

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

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  RegisterHotKey(Handle, 1, MOD_CONTROL, VK_DOWN);
  RegisterHotKey(Handle, 2, MOD_CONTROL, VK_UP);
end;

procedure TForm1.WMHOTKEY(var Msg: TMessage);
begin
  case Msg.WParam of
    1: MessageBox(Handle, 'Ctrl+Down', 'WMHOTKEY', MB_OK or MB_SYSTEMMODAL);
    2: MessageBox(Handle, 'Ctrl+Up', 'WMHOTKEY', MB_OK or MB_SYSTEMMODAL);
  end;
end;

end.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Этот пользователь сказал Спасибо NumLock за это полезное сообщение:
Gareth (01.08.2013)
  #3  
Старый 01.08.2013, 15:14
Gareth Gareth вне форума
Активный
 
Регистрация: 21.03.2013
Адрес: Приднестровье
Сообщения: 202
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от NumLock
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  RegisterHotKey(Handle, 1, MOD_CONTROL, VK_DOWN);
  RegisterHotKey(Handle, 2, MOD_CONTROL, VK_UP);
end;

procedure TForm1.WMHOTKEY(var Msg: TMessage);
begin
  case Msg.WParam of
    1: MessageBox(Handle, 'Ctrl+Down', 'WMHOTKEY', MB_OK or MB_SYSTEMMODAL);
    2: MessageBox(Handle, 'Ctrl+Up', 'WMHOTKEY', MB_OK or MB_SYSTEMMODAL);
  end;
end;

end.
Спасибо, есть еще вопрос.
Я понял как делать! Но не понял как мне вписать действия которые я хочу..
Они, как я понял, вписываются после 1: и 2: .
Но как мне вписать 2 строчки в каждую горячую клавишу?
Делаю так, но ругается)
Код:
procedure TForm1.WMHOTKEY(var Msg: TMessage);
begin
 case Msg.WParam of
    1:       keybd_event(VK_VOLUME_DOWN, 0, 0, 0);
       keybd_event(VK_VOLUME_DOWN, 0, KEYEVENTF_KEYUP, 0);


    2:        keybd_event(VK_VOLUME_UP, 0, 0, 0);
       keybd_event(VK_VOLUME_UP, 0, KEYEVENTF_KEYUP, 0);
  end;
end;
Ответить с цитированием
  #4  
Старый 01.08.2013, 15:21
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
Смех

begin-end пробовал?
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #5  
Старый 01.08.2013, 15:23
Gareth Gareth вне форума
Активный
 
Регистрация: 21.03.2013
Адрес: Приднестровье
Сообщения: 202
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от NumLock
begin-end пробовал?
Блин) спасибо большое!
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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