|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.02.2007, 14:57 | #1 |
Пользователь
Регистрация: 16.02.2007
Сообщений: 37
|
Создание системной горячей клавиши
Подскажите пожалста, как создать системную (глобальную) горячую клавишу (Чтобы действовала за пределами формы) не используя модуль Forms?
|
16.02.2007, 17:49 | #2 |
Кодер
Форумчанин
Регистрация: 27.01.2007
Сообщений: 271
|
делаешь обработчик WM_HOTKEY
|
16.02.2007, 18:29 | #3 | |
Средний прогер
Форумчанин
Регистрация: 16.01.2007
Сообщений: 123
|
Цитата:
|
|
17.02.2007, 05:41 | #4 |
Пользователь
Регистрация: 16.02.2007
Сообщений: 37
|
Если это будет работать, даже если наша форма НЕАКТИВНА - расскажи подробнее!
|
17.02.2007, 15:00 | #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; и получится что по нажатии сочетания клавиш форма исчезнет с экрана и таскбара а потом по этому сочетанию появится. |
17.02.2007, 15:11 | #6 |
Пользователь
Регистрация: 16.02.2007
Сообщений: 37
|
Секундочку... Romanus, почитай мой первый пост! Подключение модуля Forms запрещено по условию. А ты приводишь код с объектами форм...
|
17.02.2007, 15:19 | #7 |
Кодер
Форумчанин
Регистрация: 27.01.2007
Сообщений: 271
|
Друг мой не используй формы а пропиши все это в начале и завершении программы. А вообще если хочешь сделать без форм и без ничего делай через Dll.
|
17.02.2007, 15:38 | #8 |
Пользователь
Регистрация: 16.02.2007
Сообщений: 37
|
Т.е. поставить хук?.. А иначе можно?
Вот интересно мне, где брать секцию private, в консольном приложении? |
17.02.2007, 21:12 | #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 |