Denis Gladkikh
Russian   |  English

Выбранный тег: WinAPI

Регистрация горячей клавиши (hotkey) в системе для WPF приложения

Пару дней назад мне попался на форумах GotDotNet вопрос [C# + WPF] Отлов нажатий клавиш, хуки, горячие клавиши в проекте WPF, зашел туда, посмотрел, и в голове всплыло, что год назад я реализовывал похожее на WinForms, регистрировал глобальные клавиши в системе для приложения. Делал я это для проекта Vista Keys Extender. Так как я на 100% помнил, что у меня там все работало, я сразу предложил автору вопроса посмотреть на тот мой проект, чтобы найти нужное решение. Однако, мой проект не подошел для решения данного вопроса, так как в WPF работа с сообщениями реализовано по-другому. Все же я решился помочь автору в этом вопросе и разобраться с данной проблемой. Отталкиваться я начал опять же с моего проекта, шаг за шагом разбираясь, что нужно изменить и как.



Работа с окнами как в Windows 7: обновление

Программа для работы с окнами в Windows, идеи и удобства были позаимствованы из Windows 7. Программа позволяет при помощи горячих клавиш передвигать окно по экрану, размещать его в стадиях максимизации, обычного окна, а так же самое основное - размещать окна максимизированные на половину экрана. Работает с Vista и WinXP (как x86, так и x64).



Работа с окнами как в Windows 7: исправления и дополнения

Программа для работы с окнами в Windows, написанная пару дней назад, оказалась полезная не только мне. Пару слов о назначении: эта программа упрощает работу с окнами (максимизация, свертывания, перемещение).



Работа с окнами как в Windows 7 при помощи hotkeys: Win + [Up|Down|Left|Right]

Редко пользуешься тем, что пишешь сам. Но вот тот самый редкий случай. В Windows 7 мне очень понравилась возможность позиционирования окон при помощи сочетаний клавиш:

  • Win Left - окно крепиться к левому краю
  • Win Right - окно крепиться к правому краю
  • Win Up - окно максимизируется
  • Win Bottom - окно в нормальном состоянии.

Причем крепление окон к правому краю и левому, по-моему, уж очень удобная штука, ведь сколько раз приходилось самому располагать два окна на экране, с возможностью сравнения или перепечатывания...

Windows 7 не хочу использовать в качестве основной ОСь - потому что бета (или CR, главное что не Release), а возможность описанную выше использовать хочу. И вот - не поленился, и написал программку на C#, которая реализует данный функционал в Vista (скорее всего работает и более ранних версиях - просто не проверял). И как оказалось - задача не такая уж и сложная. Пришлось проимпортировать множество WinApi функций, а сама реализация разделилась на две: а) функционал, который перехватывает нажатия необходимых сочетаний клавиш б) позиционирование окон.