Главная страница
    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.037 c
11-1070682903
Igit
2003-12-06 06:55
2004.05.23
Удалить PBitmap


4-1080892476
MPS
2004-04-02 11:54
2004.05.23
Как работать с XML не пользуясь VCL?


3-1083311385
Stupid
2004-04-30 11:49
2004.05.23
как на момент комполяции pFIBDatabase сделать Connected=False.?


7-1082181103
dvl92
2004-04-17 09:51
2004.05.23
Как импортировать ссылки которые хранятся в "ИЗБРАННОМ" IE?


14-1083530095
Yanis
2004-05-03 00:34
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский