| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > Написание небольшой программы |
| Автор: suseway 25.2.2010, 15:43 |
| Хочу создать небольшую программу, которая бы висела в трее, и по назначенной горячей клавише сворачивала бы активное окно на экране. Какое средство разработки выбрать для этого и с чего начать, где загрузить? (ориентируюсь на visual c++) |
| Автор: chaos 25.2.2010, 16:26 |
| Win+D не подходит? если писать то тебе нужно 1. при старте твоего приложения запихать его в трей и убрать из таск бара 2. определить глобальный хук на клаву и привязать обработчик 3. в обработчике нужно: найти активное окно и послать ему сообщение "свернуться" вот и весь алкоритмалгоритм |
| Автор: borisbn 25.2.2010, 17:32 |
![]() хотя это похвальное желание разобраться самому. По поводу средств разработки посмотри в строрну http://qt.nokia.com/doc/4.6/ + студия на windows или qt-creator под все (условно все |
| Автор: suseway 25.2.2010, 17:34 | ||
Возможно ли написание такой программулины на QT в среде под Linux, но чтобы работало на Windows? Если да, то какая среда для этого нужна и с чего начать? |
| Автор: suseway 25.2.2010, 18:31 | ||
Пока имею вот это:
При выполнении этого кода происходит сворачивание активного окна [UPD]:: Есть вопросы: 1. Как сделать, чтобы после запуска программулины она сворачивала бы активное окно по нажатию на клавишу. 2. И еще, чтобы сама программулина висела в памяти (не закрывалась) |
| Автор: suseway 26.2.2010, 02:23 | ||
Вроде бы решил пока вот так:
|
| Автор: borisbn 26.2.2010, 10:11 |
| chaos, 1. 2. 3. Кросс, конечно, не получится, но использовать winAPI или MFC - IMHO есть головная боль |
| Автор: Alexeis 26.2.2010, 10:27 |
| ИМХО хук нужен только когда нужно запретить передачу событий от клавиатуры, или изменить одни клавиши на другие. Если просто узнать о нажатии клавиш, то есть более экономичное и менее системное решение RegisterHotKey / UnregisterHotKey (глобальный хоткей) |
| Автор: chaos 26.2.2010, 11:08 | ||
"пища" для ума
много тут головной боли? |
| Автор: suseway 2.3.2010, 18:33 |
| Да, все работает. а реально ли сделать чтобы сворачивалось не глобально а только в определенном приложении, многооконном? |
| Автор: Alexeis 2.3.2010, 18:49 |
| suseway, можно перечислять и дочерние окна, но не ясно когда остановиться. Представь что курсор будет над кнопкой |
| Автор: suseway 2.3.2010, 19:05 |
| Как я понимаю надо смотреть в сторону FindWindow и FindWindowEx. А сначала получить имя класса приложения при помощи spy32? |
| Автор: Alexeis 2.3.2010, 20:51 |
Это дает главное окно. Для навигации по дочерним нужно EnumChildWindows. |
| Автор: suseway 3.3.2010, 13:22 | ||
А с помощью какой утилиты можно узнать имя класса окна? |
| Автор: suseway 3.3.2010, 15:19 | ||
что пытаюсь сделать:
|
| Автор: Alexeis 3.3.2010, 15:23 |
Spy++ или аналоги. Но дело ведь не в том как определить имя окна. Механизм ведь универсальный. У каждого приложения окна называются по разному. |