Форум: "Система";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.14;
Скачать: [xml.tar.bz2];




Вниз

Дескрипторы иконок 


Настя   (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 и увидишь то же самое - пропадают не только часы, но и, например, отображение текущей раскладки.

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




Форум: "Система";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.14;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.025 c
4-42895           Sour                  2001-12-17 20:08  2002.02.14  
Ресурсы


7-42877           yuger                 2001-11-02 10:16  2002.02.14  
Программное включение/выключение устройства из конфигурации


3-42700           Rev                   2002-01-22 14:45  2002.02.14  
Вопрос по IB - помогите.............


4-42890           Sour                  2001-12-16 21:00  2002.02.14  
Ресурсы


1-42774           Vitek                 2002-01-31 14:15  2002.02.14  
Текстовые компоненты 2