У меня такая проблема:
Имеется некая программа, которая при запуске отображается на экране и в трее, и которая при вызове «Свернуть» своего системного меню, сворачивается в трей и исчезает с панели задач. Тоже самое происходит, если нажать обычную «_» кнопку на окне...
Мне нужно из своей программы послать этому окну сообщение, которое будет имитировать(!) событие сворачивания ее в трей, то есть фактически – вызов пункта системного меню «Свернуть»...
Делаю так:
- Код: Выделить всё
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Any) As Long
Const WM_SYSCOMMAND = &H112
Const SC_MINIMIZE = &HF020
'Посылаем окну сообщение свернуться...
SendMessage «хэндл_окна», WM_SYSCOMMAND, ByVal SC_MINIMIZE, ByVal 0&
Происходит то, что окно сворачивается... но НЕ исчезает с панели задач!
Как мне через SendMessage правильно обратится к «Свернуть» системного меню этого окна??? Может быть через WM_MENUCOMMAND??? Но как конкретней?
P.S.
При условии некоторых ограничений:
1) Делать окну SW_HIDE нельзя!
2) Прицеливаться по координатам... и посылать кнопке «_» окна CLICK нельзя – пользователь может менять размеры окна!
3) Использовать события клавиатуры тоже нельзя – форма окна может находится НЕ в фокусе, или может быть случайно сброшена с фокуса в момент выполнения команды каким-то сторонним событием!