Оптимизация кода установки глоб. хука на клавиат.
Задача: используя код из приложения, на Delphi 6-7 реализовать описанные ниже функции. Готовое приложение должно в итоге работать корректно под Windows XP и Windows Vista.
Описание задачи:
1. Необходимо, проверить корректность установки и снятия хука, возврат управления
в хуковую цепочку (т.е. убедиться что, подобная реализация хука в моей программе не помешает другим приложениям использующим клавиатуру) и вообще проверить весь механизм работы с глобальными хуками, возможно он нуждается в оптимизации с точки зрения производительности и стабильности работы.
2. Необходимо, реализовать функцию которая бы после нажатия (и удержания) на клавишу заданную
пользователем как "горячая", копировала бы в буфер обмена то, что выделено и вставляло
это в Tmemo программы.
Аглоритм которые необходимо реализовать:
1. юзер задает "горячую" клавишу (это может быть одна клавиша или набор одновременно нажатых клавиш)
2. программа устанавливает на "горячую" клавишу глобальный хук
3. в любой программе юзер выделяет текст
3. нажимает "горячую" клавишу и удерживает ее
4. программа перехватывает нажатие, копирует выделенное в буфер и
вставляет в TMemo и отображает свое окно поверх всех окно (просто чтобы проконтролировать результат работы)
5. пока юзер не отпустит клавишу программа больше ничего не делает (подразумевается, что необходимо скопировать из буфера и вставить в программу данные только один раз, после чего предоставить буфер обмена другим приложениям).
3. Необходимо научить программу ставить хук не на жестко прописанные в коде клавиши, а гибко, т.е. получить возможность в run-time менять клавишу или комбинацию клавиш на которые установлен хук.