Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 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 и увидишь то же самое - пропадают не только часы, но и, например, отображение текущей раскладки.

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




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

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

Наверх





Память: 0.47 MB
Время: 0.005 c
3-42675
Aledo
2002-01-20 15:59
2002.02.14
Заполнение таблицы


4-42900
Satrap
2001-12-07 14:56
2002.02.14
работа с mmSystem


1-42711
Анатолий
2002-02-01 07:08
2002.02.14
разрешение экрана


1-42792
Hokum
2002-01-31 16:43
2002.02.14
Имитация InterBase


3-42703
Sergant
2002-01-22 12:29
2002.02.14
Досуп к базам Btrieve





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский