Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.08.2008, 15:41   #11
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вот например тут приведен хук, который реагирует на клавиши аглицкого и клавишу стрелка-вверх: http://programmersforum.ru/showthrea...ht=WH_KEYBOARD

Код:
 if ((lParam and KF_UP)=0)and(wParam>=65)and(wParam<=90)
Поменяв параметры клавиш ты получиш свой хук, с срабатывание по горячей клавише, которую укажеш в условии.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.08.2008, 18:56   #12
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Simply-Art, будьте добры формулировать вопросы так, чтобы было понятно, что именно Вам нужно. И побольше уважения к другим участникам, пожалуйста. И поменьше флуда. Сформулируйте Ваш вопрос, не нужно перекладывать это на отвечающих, или тему удалю - пока только флуд, все варианты ответов уже даны.
B_N вне форума Ответить с цитированием
Старый 14.08.2008, 19:07   #13
Simply-Art
Программист и
Участник клуба
 
Аватар для Simply-Art
 
Регистрация: 29.10.2006
Сообщений: 1,265
По умолчанию

Формулирую как могу. Горячие клавиши не фиксированые, а задаются пользователем. В длл их редактировать уже помоему нельзя. А без использования длл можно поймать сообщение от системы, которое отсылается всем приложениям по очереди, о нажатии горячих клавишь? Надеюсь теперь более понятно я сформулировал свои следующий вопрос
Simply-Art вне форума Ответить с цитированием
Старый 15.08.2008, 11:02   #14
Dark_Elf
 
Аватар для Dark_Elf
 
Регистрация: 12.12.2007
Сообщений: 7
По умолчанию

ну на кой тебе отсылать сообщения всем приложениям?
один фиг обработать их сможет только твое.
Ну да ладно.
Вот пример может он поможет
1. Создаешь в своем приложение с помощью функции GlobalAddAtom
уникальный идентификатор.
2. далее при помощи функции RegisterHotkey Регистрируешь свой горячий ключ.
3. Твой приложение должно обработать Wm_HotKey. Там у вылезет твой уникальный идентификатор. ну и делай с ним че хочешь.
ВСЕ!
Dark_Elf вне форума Ответить с цитированием
Старый 15.08.2008, 11:09   #15
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
А без использования длл можно поймать сообщение от системы, которое отсылается всем приложениям по очереди, о нажатии горячих клавишь?
Пользуй RegisterHotkey и не парь моск, даже если не хош делать окно, сделай его все равно, пусть оно будет нулевой длины и ширины и невидимо, зато сработает надежно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.08.2008, 11:59   #16
Simply-Art
Программист и
Участник клуба
 
Аватар для Simply-Art
 
Регистрация: 29.10.2006
Сообщений: 1,265
По умолчанию

ну на кой тебе отсылать сообщения всем приложениям? Не на кой, ты не понял мой пост, проехали. Я же говорю, я не могу сделать окно. Нет у меня знаний. Подскажите как его сделать.
Simply-Art вне форума Ответить с цитированием
Старый 15.08.2008, 12:10   #17
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Я же говорю, я не могу сделать окно. Нет у меня знаний. Подскажите как его сделать.
И вот наконец то мы подошли к главному - Вот что за трабла у тебя, так так бы и написал, мол помогите окошко создать немешающее, а неразводить эту бодягу.

Ща пороюсь в примерах...

Лови пример "безоконного" ХотКея:

Код:
{
  Данный код был спроектирован в среде APIx - Visual WinAPI 2
  Copyright (c) PiddleSoft 2004-2006
  http://piddlesoft.narod.ru
  piddlesoft@mail.ru

  Дата генерации листинга - 15.08.2008 11:12:52
}

program APIx_Project21;

uses
  windows,
  messages,
  commctrl;

//Используемые модули



var
  WinClass : TWndClass; //переменная класса TWndClass для создания главного окна
  hInst : HWND; //хандлер приложения
  Handle : HWND; //локальный хандлер
  Msg : TMSG; //сообщение

procedure ShutDown; //процедура завершения программы
begin
  UnRegisterClass('TAPIxForm', hInst); //удаление окна
  ExitProcess(hInst); //закрытие программы
end;

function WindowProc(hwnd, msg, wparam, lparam: longint): longint; stdcall; //обработчик сообщений
begin
  Result := DefWindowProc(hwnd, msg, wparam, lparam);
  case Msg of
  WM_HOTKEY:MessageBox(GetForegroundWindow,'qwe','',0);
  WM_DESTROY: UnregisterHotKey(hwnd,1);
  end;
end;

begin
hInst := GetModuleHandle(nil);
  with WinClass do
  begin
   Style := CS_PARENTDC; //стиль класса главного окна
   hIcon := LoadIcon(hInst, MAKEINTRESOURCE('APIXICON')); //иконка программы
   lpfnWndProc := @WindowProc; //назначение обработчика сообщений
   hInstance := hInst;
   hbrBackground := COLOR_BTNFACE + 1; //цвет окна
   lpszClassName := 'TAPIxForm'; //класс окна
   hCursor := LoadCursor(0, IDC_ARROW); //активный курсор
  end;
InitCommonControls;
RegisterClass(WinClass); //регистрация класса в системе

// Создание главного окна программы
Handle := CreateWindowEx(0, 'TAPIxForm', 'Форма1',
WS_OVERLAPPEDWINDOW,0, 0,0, 0, 0, 0,hInst, nil);
    RegisterHotKey(Handle,1,MOD_CONTROL,VK_F1);
  // Цикл сбора сообщений
  while(GetMessage(Msg, 0, 0, 0)) do
  begin
    TranslateMessage(Msg); //прием сообщений
    DispatchMessage(Msg); //удаление сообщений из очереди
  end;
  end.
Тут на ВинАпи.
Еси что спрашиваю
I'm learning to live...

Последний раз редактировалось Stilet; 15.08.2008 в 12:25.
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как использовать компонент HotKey ? Alter Общие вопросы Delphi 14 07.04.2012 23:52
KOL HotKey Simply-Art Помощь студентам 6 13.08.2008 11:01
Потомок от HotKey Alter Компоненты Delphi 4 03.01.2008 15:47
как зарегестрировать горячую клавишу с помощью HotKey GAGARIN-NEW Компоненты Delphi 3 09.11.2007 08:22