Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

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

Наверх




Память: 0.5 MB
Время: 0.046 c
9-1072205907
SoS
2003-12-23 21:58
2004.05.23
в примерах делфиХ нашел пример, но там безконечная карта!! как...


1-1084285339
ПрогерШ
2004-05-11 18:22
2004.05.23
Как считать текущий адрес из ИЕ?


9-1074587020
Hex0DesiMaL
2004-01-20 11:23
2004.05.23
"Наползание" объектов


1-1083901059
Mihail
2004-05-07 07:37
2004.05.23
Отображение HTML-страниц в Delphi


14-1083298298
Delphi X PRO
2004-04-30 08:11
2004.05.23
На канве рисунки





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский