Страница: 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