![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 16.02.2007
Сообщений: 37
|
![]()
Подскажите пожалста, как создать системную (глобальную) горячую клавишу (Чтобы действовала за пределами формы) не используя модуль Forms?
|
![]() |
![]() |
![]() |
#2 |
Кодер
Форумчанин
Регистрация: 27.01.2007
Сообщений: 271
|
![]()
делаешь обработчик WM_HOTKEY
|
![]() |
![]() |
![]() |
#3 | |
Средний прогер
Форумчанин
Регистрация: 16.01.2007
Сообщений: 123
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 16.02.2007
Сообщений: 37
|
![]()
Если это будет работать, даже если наша форма НЕАКТИВНА - расскажи подробнее!
|
![]() |
![]() |
![]() |
#5 |
Кодер
Форумчанин
Регистрация: 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; и получится что по нажатии сочетания клавиш форма исчезнет с экрана и таскбара а потом по этому сочетанию появится. |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 16.02.2007
Сообщений: 37
|
![]()
Секундочку...
![]() |
![]() |
![]() |
![]() |
#7 |
Кодер
Форумчанин
Регистрация: 27.01.2007
Сообщений: 271
|
![]()
Друг мой не используй формы а пропиши все это в начале и завершении программы. А вообще если хочешь сделать без форм и без ничего делай через Dll.
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 16.02.2007
Сообщений: 37
|
![]()
Т.е. поставить хук?.. А иначе можно?
Вот интересно мне, где брать секцию private, в консольном приложении? |
![]() |
![]() |
![]() |
#9 |
Кодер
Форумчанин
Регистрация: 27.01.2007
Сообщений: 271
|
![]()
Да блин никакой private не нужен просто делаешь отдельный модуль в котором прописываешь выше упомянутую процедуру обработки горячей клавиши а внутри ее пиши что должно происходить при нажатии этой комбинации. И не хук. В памяти висит библиотека которая регистрирует нажатие гор. кл. в впоследствии выполняет какие то функции
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Клавиши | 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 |