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

Вниз

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

 
K.o.Z ©   (2002-10-20 19:31) [0]

Добрый вечер.
У меня вопрос такого характера:
как мне убрать иконку часов виндовз из трея и именно на её место поместить свою; причём, если в настройках Панель Задач\Свойства\Отображать часы - не стоит галочка, не показывать свою (и не показывать виндовсовскую) ...

Буду очень рад выслушать ваши предложения.

Спасибо


 
Song ©   (2002-10-21 09:18) [1]

Убить процесс часов. Поможет, но ненадолго. :(


 
K.o.Z ©   (2002-10-25 22:05) [2]

Как убить процесс часов?Если можно кусок кода.


 
Cobalt ©   (2002-10-26 02:35) [3]

> Song © (21.10.02 09:18)
Не издевайтесь над новичком
>K.o.Z © (25.10.02 22:05)
Даю намек: это окно класса TrayClockWClass, является дочерним для окна класса Shell_TrayWnd. Более подробно - используйте WinSight32/Spy++
Ваша задача - внедриться в поток этого окна (через хук), закрепиться в нём(LoadLibrary), и заменить адрес оконной ф-ии(не забыв сохранить ее предыдущий адрес) - рисуйте что угодно. Если в настройках - "не отображать" - то окно не будут просить отрисовываться.


 
TankMan ©   (2002-10-26 15:27) [4]

А примера конечно не будет :)


 
Cobalt ©   (2002-10-26 19:33) [5]

Пример - TClockEx http://users.iafrica.com/d/da/dalen/tclockex.htm
8-)
Все остальное - ручками, ручками...


 
K.o.Z ©   (2002-10-26 23:24) [6]

2 Cobalt
что-то всё очень сложно...
частично понял, НО... каким образом закрепиться в в потоке окна и заменить адрес оконной ф-ии... вот это поистине черная дыра


 
Cobalt ©   (2002-10-27 00:31) [7]

Оооо, это, можно сказать, бич (один из) этого форума - Хуки.
Почитайте статью здесь, на сайте, внимательно. Потренируйтесь с хуками вообще, а потом уж приступайте к Вашей задаче.


 
K.o.Z ©   (2002-10-27 21:49) [8]

то, что я с хуками не дружу это уже ясно...
нашел, как просто гепнуть иконку часов, НО как же на их место поставить свою ??


 
Cobalt ©   (2002-10-27 23:37) [9]

>что-то всё очень сложно...
Дык, а ты что думал? Обойтись сотней строк кода? Библиотек/компонент для этого нет(каждая такая работа - ручная -> автор не спешит выкладывать код кому попало(кому НАДО - сами разберутся и получат ОГРОМНЫЙ опыт))
Концепцию я тебе дал, так что перед тобой - шикарное поле для деятельности.
Для начала - подружись с хуками. - без этого - никак(по крайней мере - в линейке Вин9Х, с NT не работал)


 
Cobalt ©   (2002-10-27 23:40) [10]

Кстати, не объяснишь - че это за сленг такой - "гепнуть" ?
Явно не компьютерный...


 
K.o.Z ©   (2002-10-28 00:37) [11]

разговорный сленг...
вот одного не пойму: заменить адрес оконной ф-ии
что это подразумевается ??


 
Cobalt ©   (2002-10-28 08:02) [12]

Так, с хуками уже разобрался - молодец!
Тогда см. ф-ию SetWindowLong (GWL_WNDPROC)


 
K.o.Z ©   (2002-11-01 20:10) [13]

2Cobalt
Вы говорили заменить на новую ф-цию, а как это осуществить, если я хочу, чтоб у часов была не такая же оконная ф-ция а др. специально написаная мною для них, как быть ?


 
K.o.Z ©   (2002-11-01 20:11) [14]

2Cobalt
Вы говорили заменить на новую ф-цию;
а как это осуществить, если я хочу, чтоб у часов была не такая же оконная ф-ция как в моей проге, а др., специально написаная мною для них, как быть ? Как получить 32-разрядный адресс этой, другой, ф-ции ?


 
Cobalt ©   (2002-11-02 00:23) [15]

Очень просто ;-))
code>Ptr:= @MyWindowFunc;
P.S.
Таки ты с хуками-то разобрался?


 
K.o.Z ©   (2002-11-02 03:25) [16]

с использованием хуков вообще, более или менее
а вот в конкретном моём случаи, я так и не понимаю мою пошаговую цель в их использовании :(
зачем они мне вообще нужны, они ж только сообщения обрабатывают :)
читал справку Get\SetWindowLong, выяснил, как получить адрес ф-ции и как его заменить в принципе... пытался заменить, ничего не вышло :(
спрашивал знакомы, так те вообще сказали, что у меня ничего не выйдет...
вообщем я облазил "весь" инет и даже приближенного ответа на своё вопрос не нашел...

если можете объяснить мне более подробный алгоритм моих действий буду признателен

P.S.
если вы уж решили уделить мне немного времени :) так может перейдем на связь по средствам мыла ?


 
Ihor Osov'yak ©   (2002-11-02 18:58) [17]

Сорри, что вмешиваюсь, разрешите мое имхо -

> более подробный алгоритм моих действий



См Cobalt © (26.10.02 02:35) - куда же подробнее...

Да, кстати внедриться в поток этого окна (через хук), закрепиться в нём(LoadLibrary), и заменить адрес оконной ф-ии(не забыв сохранить ее предыдущий адрес)
- это примерно на десять - двадцать минут работы (для программера "средней" квалификации, знакомого с соотв. тематикой ) - так что наберись терпения, ибо часть по отрисовке - в несколько раз, а может и на порядок в плане времени потянет - умножь на свой коэф. пропорциональности. Также это очень полезно решить самому - получишь хороший экспириенс ...



 
Cobalt ©   (2002-11-04 00:31) [18]

Выслал подробную интсрукцию.



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

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

Наверх




Память: 0.51 MB
Время: 0.017 c
1-51771
^Sanya
2002-12-04 00:00
2002.12.16
Кто найдёт ошибку(ки) в этом коде?


14-51903
greenrul
2002-11-22 17:23
2002.12.16
Кто что курит?


8-51841
faf
2002-09-01 10:50
2002.12.16
Как, сделать, спектроанализатор?


4-51990
kosdem
2002-11-01 05:06
2002.12.16
реестр


1-51726
Th
2002-12-05 18:49
2002.12.16
Вставка своего компонента в TOpenDialog