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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.02.2007, 14:57   #1
Seqular
Пользователь
 
Аватар для Seqular
 
Регистрация: 16.02.2007
Сообщений: 37
По умолчанию Создание системной горячей клавиши

Подскажите пожалста, как создать системную (глобальную) горячую клавишу (Чтобы действовала за пределами формы) не используя модуль Forms?
Seqular вне форума Ответить с цитированием
Старый 16.02.2007, 17:49   #2
Romanus
Кодер
Форумчанин
 
Регистрация: 27.01.2007
Сообщений: 271
По умолчанию

делаешь обработчик WM_HOTKEY
Romanus вне форума Ответить с цитированием
Старый 16.02.2007, 18:29   #3
Cezar
Средний прогер
Форумчанин
 
Аватар для Cezar
 
Регистрация: 16.01.2007
Сообщений: 123
По умолчанию

Цитата:
делаешь обработчик WM_HOTKEY
Вот об этом поподробнее, самому интересно стало...
Cezar вне форума Ответить с цитированием
Старый 17.02.2007, 05:41   #4
Seqular
Пользователь
 
Аватар для Seqular
 
Регистрация: 16.02.2007
Сообщений: 37
По умолчанию

Если это будет работать, даже если наша форма НЕАКТИВНА - расскажи подробнее!
Seqular вне форума Ответить с цитированием
Старый 17.02.2007, 15:00   #5
Romanus
Кодер
Форумчанин
 
Регистрация: 27.01.2007
Сообщений: 271
По умолчанию

Объясняю в поле приват запихиваем
procedure WMHotKey(var Mess:TWMHotKey);message WM_HOTKEY;

Далее в создание и удаление формы
procedure TForm1.FormCreate(Sender: TObject);
begin
//Вы можете забивать сюда любое сочетание клавиш
//в данном случае это Ctrl-F12
RegisterHotKey(Handle, 1 ,MOD_CONTROL, vk_F12);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
UnregisterHotKey(Handle, 1);
end;
А в инициализацию процедуры обработки сообщений(WMHotKey(var Mess:TWMHotKey)) пишем то что должно происходить по нажатии горячих клавиш например впишите туда такой код
procedure TForm1.WMHotKey(var Mess: TWMHotKey);
begin
if Form1.Visible then Form1.Visible:=False
else Form1.Visible:=True;
end;
и получится что по нажатии сочетания клавиш форма исчезнет с экрана и таскбара а потом по этому сочетанию появится.
Romanus вне форума Ответить с цитированием
Старый 17.02.2007, 15:11   #6
Seqular
Пользователь
 
Аватар для Seqular
 
Регистрация: 16.02.2007
Сообщений: 37
По умолчанию

Секундочку... Romanus, почитай мой первый пост! Подключение модуля Forms запрещено по условию. А ты приводишь код с объектами форм...
Seqular вне форума Ответить с цитированием
Старый 17.02.2007, 15:19   #7
Romanus
Кодер
Форумчанин
 
Регистрация: 27.01.2007
Сообщений: 271
По умолчанию

Друг мой не используй формы а пропиши все это в начале и завершении программы. А вообще если хочешь сделать без форм и без ничего делай через Dll.
Romanus вне форума Ответить с цитированием
Старый 17.02.2007, 15:38   #8
Seqular
Пользователь
 
Аватар для Seqular
 
Регистрация: 16.02.2007
Сообщений: 37
По умолчанию

Т.е. поставить хук?.. А иначе можно?
Вот интересно мне, где брать секцию private, в консольном приложении?
Seqular вне форума Ответить с цитированием
Старый 17.02.2007, 21:12   #9
Romanus
Кодер
Форумчанин
 
Регистрация: 27.01.2007
Сообщений: 271
По умолчанию

Да блин никакой private не нужен просто делаешь отдельный модуль в котором прописываешь выше упомянутую процедуру обработки горячей клавиши а внутри ее пиши что должно происходить при нажатии этой комбинации. И не хук. В памяти висит библиотека которая регистрирует нажатие гор. кл. в впоследствии выполняет какие то функции
Romanus вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Клавиши RealSHELS Общие вопросы Delphi 3 27.03.2008 22:32
Клавиши xakkkkker Общие вопросы Delphi 1 23.03.2008 10:45
Как получить значение системной переменной в С++ PersonaGrata Общие вопросы C/C++ 2 29.02.2008 22:14
Установка системной даты и времени (С++) Juli Помощь студентам 1 07.12.2007 15:50
Код клавиши... =*=|/|MM0PT@/\=*= Паскаль, Turbo Pascal, PascalABC.NET 3 19.01.2007 13:10