Форум: "Система";
Поиск по всему сайту: 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.022 c
1-42729           Tkach_                2002-01-30 16:43  2002.02.14  
процессы


7-42885           hp1100                2001-11-08 23:18  2002.02.14  
Как использовать звуковую карту в кач-ве АЦП медленно меняющегося сигнала 0-1,0 V ?


1-42796           Leo^Sun               2002-01-31 21:03  2002.02.14  
Переменная String


1-42717           Welder                2002-01-30 11:21  2002.02.14  
TdrawGrid


1-42797           DimaIv                2002-01-31 19:57  2002.02.14  
Как вывеcти jpg картинку на полный экран (fullscren)