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

Вниз

Исчезающий значок из трея   Найти похожие ветки 

 
WELLiON ©   (2004-04-01 14:24) [0]

Такая проблема: пишу прогу на винапи. Она сидит в трее и что-то делает. Начал писать. Написал только функции создания и удаления иконки трея. Столкнулся с тем, что иконка исчезает из трея, когда на нее наводишь мышкой. При этом функция удаления иконки не срабатывает. Мой код (приблизительно):

program bla-bla-bla;

//bla-bla-bla

begin
//ловлю хендл
createtrayicon(1);
messagebo(myHandle, //bla-bla-bla );
deletetrayicon(1);
end.

Когда висит мессаджбокс процесс еще не завершен, функция deletetrayicon(1) еще пока не срабатывает. В чем косяк?
Заранее спасибо.


 
Игорь Шевченко ©   (2004-04-01 14:26) [1]


> В чем косяк?


В неуважении к посетителям форума


 
WELLiON ©   (2004-04-01 14:42) [2]

В смысле?


 
[lamer]Barmaglot ©   (2004-04-01 14:53) [3]

В смысле код покажи...


 
WELLiON ©   (2004-04-01 14:59) [4]

Попозже малость. Он у меня дома, а я сейчас в универе. Ближе к вечеру. Если только в этом проявилось мое неуважение к посетителям форума - тогда прошу прощения.  Если еще в чем-то - тогда тоже прошу. %-)


 
[lamer]Barmaglot ©   (2004-04-01 15:08) [5]

ну если своего кода нет посмотри чужой, а потом сравнишь...

http://www.delphimaster.ru/cgi-bin/download.pl?get=1059857052&n=0


 
WELLiON ©   (2004-04-01 15:13) [6]

Хм. Даже и не знаю, что ответить. У меня кода раз в 20-40 поменьше. Полторы страницы, если быть точным. Вот приду домой и покажу. %-)


 
nikkie ©   (2004-04-01 15:22) [7]

причина скорее всего в том, что при вызове Shell_NotifyIcon указан неверный hwnd окна-приемника. при наведении мышки трей пытается посылать сообщения этому окну, обламывается и убирает иконку, считая, что приложение умерло, забыв удалить за собой иконку.


 
WELLiON ©   (2004-04-01 17:21) [8]

Ну так вот мой код:

program Napomin;

uses LimHinst_for_Napomin,
Windows,ShellAPI, SysUtils, messages;

const wm_myiconnotify = wm_user + 123;

{$R 123.res}

var
myh:HWND;
myicon: HIcon;
nidata: TNotifyIconData;
mymes: Tmsg; b:boolean;
path: string;

procedure CreateTrayIcon(n:integer) ;
begin
 with nidata do
   begin
     cbSize:=SizeOf(TNotifyIconData);
     wnd:=myh;
     uid:=1;
     uflags:=NIF_Icon or NIF_message or NIF_tip;
     ucallbackmessage:=wm_myiconnotify;
     hicon:=myicon;
     strPcopy(szTip,"123");
   end;
 shell_notifyicon(NIM_ADD, @nidata);
end;

procedure DeleteTrayIcon(n:integer);
var nidata:TNotifyIconData;
begin
 with nidata do
   begin
     cbSize:=sizeof(TNotifyIconData);
     wnd:=myh;
     uid:=1;
   end;
 shell_notifyicon(NIM_DELETE, @nidata);
end;

begin
myh:=findwindow(nil,"Napomin");
path:=paramstr(0);
myicon:=extracticon(myh,PChar(path),0);
createtrayicon(1);
messagebox(myh,"123","123",MB_OK);
deletetrayicon(1);
end.

Иконка исчезает, когда на нее наводишь курсор мыши.

2nikkie: а какое окно должно получать сообщение? И почему мое окно не работает?


 
nikkie ©   (2004-04-01 17:54) [9]

оригинально... это что ж ты хочешь - окно из другого процесса в трей засадить?


 
WELLiON ©   (2004-04-02 15:05) [10]

Прошу прощения за поздний ответ.
А как мне отловить координаты моего проекта в памяти?
Как мне тут же объясняли, при запуске любого процесса все равно создается окно с таким же названием. И из всего вышесказанного: тогда как мне отловить сообщения, которые направляются "моему" окну? Или лучше/проще мне создать собственное окно (на винапи), а уж потом работать с ним?


 
WELLiON ©   (2004-04-02 15:05) [11]

Удалено модератором
Примечание: Дубль


 
panov ©   (2004-04-02 19:15) [12]

см.
1. http://delphimaster.net/view/15-1080143655/
2. http://delphimaster.net/view/15-1080143655/
 пост №122


 
Suntechnic ©   (2004-04-02 20:02) [13]

WELLiON ©   (02.04.04 15:05) [10]
Как мне тут же объясняли, при запуске любого процесса все равно создается окно с таким же названием.


Ерунду тебе объясняли. Либо ты так понял.


 
WELLiON ©   (2004-04-02 22:25) [14]

2Suntechnic : скорее второе.
2panov : спасибо.
Сорри за дубль. %-)
Огромное всем спасибо.



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

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

Наверх




Память: 0.5 MB
Время: 0.027 c
6-1081178925
-=Demon=-
2004-04-05 19:28
2004.05.23
TClient&TServer-Socket


1-1084217733
killer
2004-05-10 23:35
2004.05.23
Вставка втроки в TStringList


14-1083328106
uny
2004-04-30 16:28
2004.05.23
тема такая странная


1-1083947375
Крутыш
2004-05-07 20:29
2004.05.23
Как в memo вставить символ перевода строки


3-1083251423
windows
2004-04-29 19:10
2004.05.23
русский язык в таблице