![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как из моей программы управлять TrayIcon другой программы? [D7]
MaKc32 © (2010-01-05 03:41:00)Нужно из моей программы произвести двойной клик на определенном значке в трее либо его пунтке меню.
Посылаю команду ShowWindow(Handle, 1);
Окно программы появляется, но оно как будто свернуто, нельзя нажать свернуть, пока не будет сделан клик на значок в трее.
brother (2010-01-13 04:56:00) [1]все просто (как я и предполагал):
// Определяем путь к приложению добавившему иконку
FIconData.Items[I].szAppPath := GetAppName(NprivIcon.hWnd);
if Pos('имя EXE', FIconData.Items[I].szAppPath) > 0 then
begin
SendMessage(NprivIcon.hWnd, NprivIcon.uCallbackMessage, NprivIcon.uID, WM_LBUTTONDBLCLK);
end;
brother (2010-01-13 04:37:00) [2]> потом смотри
>
> NprivIcon.hWnd и NprivIcon.uCallbackMessage
О_о эээ, чет в прошлый раз я совсем ступил...
Rouse_ (2010-01-12 13:26:00) [3]
> brother © (12.01.10 12:14) [9]
>
> яб с удовольствие посмотрел на рабочий вариант ;)
> а именно: Узнать Wnd & uCallbackMessage и послать WM_LBUTTONDBLCLK
> чужого приложения
// Читаем расширенную информацию по кнопке
ZeroMemory(@NprivIcon, SizeOf(TNprivIcon));
ReadProcessMemory(hProcess, Pointer(ButtonInfo.lParam),
@NprivIcon, SizeOf(TNprivIcon), dwBytesWriten);
потом смотри
NprivIcon.hWnd и NprivIcon.uCallbackMessage
Leonid Troyanovsky (2010-01-12 13:10:00) [4]
> brother © (12.01.10 12:14) [9]
Вроде бы, в [4] ссылка на пример, в котором есть
"Узнать Wnd & uCallbackMessage".
Но, можно еще проще.
Выяснить WM_COMMAND нужного пункта меню и слать его окну,
которое их (WM_COMMAND) обрабатывает.
--
Regards, LVT.
brother (2010-01-12 12:14:00) [5]яб с удовольствие посмотрел на рабочий вариант ;)
а именно: Узнать Wnd & uCallbackMessage и послать WM_LBUTTONDBLCLK чужого приложения
Rouse_ (2010-01-12 12:08:00) [6]
> brother © (12.01.10 04:45) [5]
>
> > Ну почему-же. Все там определено :)
>
> смотрел этот код, но до: кликнуть по иконке в трее ему далеко
> (дорабатывал напильником, долго и нудно)
Ну это-же демо, код можно использовать только в качестве отправной точки :)
brother (2010-01-12 09:38:00) [7]> Узнать Wnd & uCallbackMessage и послать WM_LBUTTONDBLCLK.
были заморочки какие-то, ща не помню...
Leonid Troyanovsky (2010-01-12 09:29:00) [8]
> brother © (12.01.10 04:45) [5]
> смотрел этот код, но до: кликнуть по иконке в трее ему далеко
А кликать-то зачем?
Узнать Wnd & uCallbackMessage и послать WM_LBUTTONDBLCLK.
--
Regards, LVT.
brother (2010-01-12 04:45:00) [9]> Ну почему-же. Все там определено :)
смотрел этот код, но до: кликнуть по иконке в трее ему далеко (дорабатывал напильником, долго и нудно)
Rouse_ (2010-01-10 15:17:00) [10]
> Anatoly Podgoretsky © (05.01.10 15:11) [2]
> В трее только картинка, при том с неопределенным местоположением.
Ну почему-же. Все там определено :)
http://rouse.drkb.ru/winapi.php#fwsystrayinfo
(2010-01-06 19:39:00) [11]Удалено модератором
Anatoly Podgoretsky (2010-01-05 15:11:00) [12]> MaKc32 (05.01.2010 03:41:00) [0]
В трее только картинка, при том с неопределенным местоположением.
Leonid Troyanovsky (2010-01-05 09:45:00) [13]
> MaKc32 (05.01.10 03:41)
http://msdn.microsoft.com/en-us/library/ms633539(VS.85).aspx
--
Regards, LVT.