Форум: "Основная";
Текущий архив: 2011.08.21;
Скачать: [xml.tar.bz2];
ВнизКак из моей программы управлять TrayIcon другой программы? Найти похожие ветки
← →
MaKc32 (2010-01-05 03:41) [0]Нужно из моей программы произвести двойной клик на определенном значке в трее либо его пунтке меню.
Посылаю команду ShowWindow(Handle, 1);
Окно программы появляется, но оно как будто свернуто, нельзя нажать свернуть, пока не будет сделан клик на значок в трее.
← →
Leonid Troyanovsky © (2010-01-05 09:45) [1]
> MaKc32 (05.01.10 03:41)
http://msdn.microsoft.com/en-us/library/ms633539(VS.85).aspx
--
Regards, LVT.
← →
Anatoly Podgoretsky © (2010-01-05 15:11) [2]> MaKc32 (05.01.2010 03:41:00) [0]
В трее только картинка, при том с неопределенным местоположением.
← →
имя (2010-01-06 19:39) [3]Удалено модератором
← →
Rouse_ © (2010-01-10 15:17) [4]
> Anatoly Podgoretsky © (05.01.10 15:11) [2]
> В трее только картинка, при том с неопределенным местоположением.
Ну почему-же. Все там определено :)
http://rouse.drkb.ru/winapi.php#fwsystrayinfo
← →
brother © (2010-01-12 04:45) [5]> Ну почему-же. Все там определено :)
смотрел этот код, но до: кликнуть по иконке в трее ему далеко (дорабатывал напильником, долго и нудно)
← →
Leonid Troyanovsky © (2010-01-12 09:29) [6]
> brother © (12.01.10 04:45) [5]
> смотрел этот код, но до: кликнуть по иконке в трее ему далеко
А кликать-то зачем?
Узнать Wnd & uCallbackMessage и послать WM_LBUTTONDBLCLK.
--
Regards, LVT.
← →
brother © (2010-01-12 09:38) [7]> Узнать Wnd & uCallbackMessage и послать WM_LBUTTONDBLCLK.
были заморочки какие-то, ща не помню...
← →
Rouse_ © (2010-01-12 12:08) [8]
> brother © (12.01.10 04:45) [5]
>
> > Ну почему-же. Все там определено :)
>
> смотрел этот код, но до: кликнуть по иконке в трее ему далеко
> (дорабатывал напильником, долго и нудно)
Ну это-же демо, код можно использовать только в качестве отправной точки :)
← →
brother © (2010-01-12 12:14) [9]яб с удовольствие посмотрел на рабочий вариант ;)
а именно: Узнать Wnd & uCallbackMessage и послать WM_LBUTTONDBLCLK чужого приложения
← →
Leonid Troyanovsky © (2010-01-12 13:10) [10]
> brother © (12.01.10 12:14) [9]
Вроде бы, в [4] ссылка на пример, в котором есть
"Узнать Wnd & uCallbackMessage".
Но, можно еще проще.
Выяснить WM_COMMAND нужного пункта меню и слать его окну,
которое их (WM_COMMAND) обрабатывает.
--
Regards, LVT.
← →
Rouse_ © (2010-01-12 13:26) [11]
> 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
← →
brother © (2010-01-13 04:37) [12]> потом смотри
>
> NprivIcon.hWnd и NprivIcon.uCallbackMessage
О_о эээ, чет в прошлый раз я совсем ступил...
← →
brother © (2010-01-13 04:56) [13]все просто (как я и предполагал):
// Определяем путь к приложению добавившему иконку
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;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2011.08.21;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.003 c