Страница: 1 |
AllToTray, да? Мне тоже вдруг захотелось что-то в этом роде сделать, во-первых, потому что она, кажись, платная, во-вторых, потому что она мне глаза мозолила (не знаю, правда, чем ) Принцип такой: Получаешь все окна верхнего уровня (сейчас наверняка ошибусь, но это, кажется, GetForegroundWindow) Добавляешь в системное меню (GetSystemMenu-SetMenuInfo?) пункт, отслеживаешь (хук, пожалуй) его нажатие, получаешь иконку (GetWindowLong), кидаешь ее в трей, потом обрабатываешь согласно плану. Нажатие кнопок в трее отлавливаешь так же, как и всегда, своим окном. Потом активизируешь нужное окно и передпешь ему фокус. А иконку из окна, нашел: GetClassName, GetClassLong с параметром GCL_HICON так я и не разобрался с иконко, у кого есть готовый рабочий код, вышлите пожалуйста! Страница: 1 |
Вопрос: вопрос к размышлению
Добавлено: 09.02.04 21:45
Автор вопроса: ZoomerSD | ICQ: 148640473
видел я в инете такую забавную софтинку, которая умела окна в системный трей свёртывать,но как вы понимаете
любая программа как-только попадает на глаза человеку
после того,как
знккомому с программированием, у последнего появляеться желание что0то в ней добавить, что-то переделать, вот и у меня такое желание появилось. Но поскольку я пока-ещё не очень илён в этом деле, я смог набрасать только примерный алгаритм действий:
создаём массив контролов который vt.n светиться в трее
е умеют
получаем иконку активного окна
сажаем в трей эту иконку
и прячем окно
когда кликаем по иконке, тоесть по контролу, мы окошко обратно возвращаем, и иконку убирае.Вот впринцепи и весь алгоритм, к моему огромному сожалению, я умею только первый третий и частично пятый:( Кто знает как решить остальные пункты, подскажите пожалуйста...
Ответы
Всего ответов: 5
Номер ответа: 1
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #1
Добавлено: 10.02.04 20:39
Номер ответа: 2
Автор ответа:
ZoomerSD
ICQ: 148640473
Вопросов: 135
Ответов: 270
Профиль | | #2
Добавлено: 10.02.04 21:02
отнасительно GetForegroundWindow() ты совершенно прав а вот с остальным сложнее, как ловить нажатые клавиши из трея, как получить иконку активного окна?
Номер ответа: 3
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #3
Добавлено: 10.02.04 21:57
Номер ответа: 4
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #4
Добавлено: 10.02.04 22:27
GetForegroundWindow - получение активного окна... или теперь я ошибаюсь
Только представляется мне что работа подобных прог заключается в следующем:
1. Просматривает все окна в системе, отбирает только видимые...
2. Получает иконку... Тут я думаю проблемм не будет, т.к. я уже не однократно видел заменители TaskSwitcher'a (Alt + Tab)
3. а) Ставит хук на все окна
б) Ставит хук на активное окно
4. При сворачивании, отслеживает это дело, и добавляет СВОЮ иконку в панель уведомлений
5. само окошко - скрывается
6. при нажатии на иконку (менюшку), это окошко показывается, а дабы все выглядело красиво, его можно еще и развернуть
Номер ответа: 5
Автор ответа:
ZoomerSD
ICQ: 148640473
Вопросов: 135
Ответов: 270
Профиль | | #5
Добавлено: 14.02.04 19:29