Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.02.14;
Скачать: CL | DM;

Вниз

Дескрипторы иконок   Найти похожие ветки 

 
Настя   (2001-11-08 08:38) [0]

Как получить дескрипторы иконок в трее ? Помогите пожайлуста!


 
Jul   (2001-11-08 10:32) [1]

может поможет ...
http://www.codenet.ru/progr/delphi/stray/


 
Настя   (2001-11-08 10:49) [2]

Уже читала! Там про это нету.


 
Voron ©   (2001-11-08 12:04) [3]

По моему у каждой отдельно взятой иконки вообще дескриптора нет.
Ими всеми вместе Systray заведует которые в памяти сидит.
А что конкретно сделать надо?


 
Настя   (2001-11-08 12:20) [4]

Заменить иконку системных часов своей.


 
Jurgen ©   (2001-11-08 12:47) [5]

Не надо...


 
Voron ©   (2001-11-08 12:58) [6]

Отключи в винде параметр Отображать часы в Systray (как программно не знаю но уверен сделать это можно) и помещай вместо них что хочешь


 
Настя   (2001-11-08 13:07) [7]

Тогда я столкнусь с двумя проблемами:
1. Если моя программа вылетает, то часы не восстановяться.
2. Нужно запихать иконку в САМЫЙ правый конец трея. Как ?

По моему лучше использовать параметр NIM_MODIFY в Shell_NotifyIcon(). Это самый правильный способ. Но для этого надо знать что именно MODIFY. Нигде не могу найти. Два дня уже веду поиски :(


 
Voron ©   (2001-11-08 14:18) [8]

Если че нить придумаю то напишу


 
Jurgen ©   (2001-11-08 14:43) [9]

Снова привет. Лови пример определения child"ов TrayWnd

function lpEnumFunc(h: hWnd; lParam: LParam): Bool; stdcall;
type
PhWnd = ^hWnd;
var
Buf: array[0..50] of Char;
begin
Result := True;
if (GetClassName(h, Buf, 50) <> 0) then
if (lStrCmp(Buf, "TrayNotifyWnd") = 0) then begin
PhWnd(lParam)^ := h;
Result := False;
end;
end;

procedure ...;
var
hShell, hTray: HWnd;
lpRect: TRect;
begin
hShell := FindWindow("Shell_TrayWnd", "");
EnumChildWindows(hShell, @lpEnumFunc, LongInt(@hTray));
...
PostMessage(Handle, WM_NULL, 0, 0);
end;

Удачи. Да прибудет с тобой F1.

З.Ы. Программа, кусочек которой висит выше, успешно использовалась для отлавливания нажатия мыши на иконку Internat.exe (переключатель раскладки клавиатуры)


 
Jurgen ©   (2001-11-08 14:45) [10]

Добавка:
NIM_MODIFY используется для обновления иконки, уже загруженной в трэй (если вдруг сменился хинт или сама иконка)


 
Jurgen ©   (2001-11-08 14:46) [11]

Опять добавка: если что - мыль


 
Myppp   (2001-11-08 20:17) [12]

Хм..
во-первых часы.. это не иконка..
во-вторых... а не проще просто отрисовывать по DC систрея ???


 
Настя   (2001-11-09 07:00) [13]

Спасибо! Буду разбираться и пробовать.


 
panov ©   (2001-11-09 09:33) [14]

>Настя (08.11.01 13:07)

>Тогда я столкнусь с двумя проблемами:
>1. Если моя программа вылетает, то часы не восстановяться.

Ты столкнешся с этой проблемой в любом случае - заменяешь ты прогамму чсов в Tray или не заменяешь.

Убей Explorer и увидишь то же самое - пропадают не только часы, но и, например, отображение текущей раскладки.

Решения этой проблемы нет.




Страницы: 1 вся ветка

Текущий архив: 2002.02.14;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.009 c
1-42711
Анатолий
2002-02-01 07:08
2002.02.14
разрешение экрана


6-42813
vinni2000
2001-11-23 11:52
2002.02.14
Как соеденить клиента и сервера


3-42670
Mikhail
2002-01-18 21:42
2002.02.14
Ответте хоть ради смеха...


1-42736
Игорь
2002-01-30 03:09
2002.02.14
Вопрос из серии Hellow Word :)


1-42771
IronHawk
2002-01-31 12:57
2002.02.14
Уважаемые Мастера! Опять нужна ваша помощ с fsMDIChild.