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

Вниз

Не выключается виндовс с запущеной программой   Найти похожие ветки 

 
KyRo   (2006-08-17 11:07) [0]

Добрый день.
У меня с запущеной  программой отказывается выключатся,перезагружатся виндовс пока ее не закроеш руками.
Путем исключений нашол что перестает она автоматически закрыватся после того как я прячу ее в трей (Если не прятать ее все нормально) , при этом не зависимо висит она в трее или уже извлек ее из него.
Подскажите из за чего это может быть
Вот код как я прячу ее в трей
//=====================================================
//Процедура прячущая программу в Tray
Function Ttray.Active(Visible:boolean):boolean;
begin
  With MyNotifyIconData do
begin
  CbSize:=SizeOf(MyNotifyIconData);
  Wnd := AllocateHWnd(TrayMsgHandler);
  Uid:=0;
  uFlags:= NIF_MESSAGE or NIF_ICON or NIF_TIP;
  uCallbackMessage:=WM_NOTIFYICON;
  if Assigned(FImage)
    then  HIcon:=FImage.Icon.Handle
    else  HIcon:=LoadIcon(Hinstance,"MAINICON");
  lstrcpyn(SzTip,PChar(FHint),length(FHint)+1);
end;
  Result:=Shell_NotifyIcon(NIM_ADD,@MyNotifyIconData);
  if (result=True)and(Visible<>False) then
  (Owner as TWinControl).visible:=False;
  Active:=Result;
end;
//======================================================
//Процедура извлекающая программу из Tray
Function Ttray.DeActive;
begin
 Result:=Shell_NotifyIcon(NIM_DELETE,@MyNotifyIconData);
 if Result then
 (Owner as TWinControl).visible:=True;
 DeActive:=Result;
end;


 
Ketmar ©   (2006-08-17 11:08) [1]

проблема не здесь.


 
KyRo   (2006-08-17 11:15) [2]

А мне кажетса что здесь.
Потому что я запускаю программу делаю все что надо (только не сворачиваю в трей) нажимаю логоф или перезагрузку все работает , а как только сверну в трей все прога отказывается давать перезагружать комп


 
DprYg ©   (2006-08-17 11:53) [3]

uses Ctrl + F1;
Note:Use the DeallocateHWnd procedure to free windows that are created using AllocateHWnd.


 
Ketmar ©   (2006-08-17 11:55) [4]

кстати, а зачем AllocateHWnd()? это код компонента, что ли? не проще ли сразу из главной формы работать со значком?


 
Ketmar ©   (2006-08-17 11:55) [5]

> [3] DprYg ©   (17.08.06 11:53)
да, не успел дописать. %-)


 
KyRo   (2006-08-17 12:04) [6]

Да это кусок кода компоненты


 
DprYg ©   (2006-08-17 12:12) [7]

А зачем писать этот компонент, если их такого рода в инете уже море?


 
Ketmar ©   (2006-08-17 12:12) [8]

> [6] KyRo   (17.08.06 12:04)
тогда не забывай DeallocateHWnd(). должно помочь. в моей компоненте всё работает. %-)


 
Ketmar ©   (2006-08-17 12:13) [9]

> [7] DprYg ©   (17.08.06 12:12)
ну, может, просто для общего развития? или там какая-то эксклюзивная фича есть...


 
KyRo   (2006-08-17 12:16) [10]


> > [6] KyRo   (17.08.06 12:04)
> тогда не забывай DeallocateHWnd(). должно помочь. в моей
> компоненте всё работает. %-)

А где его там использовать ?


 
Сергей М. ©   (2006-08-17 12:18) [11]


> это кусок кода компоненты
>


Компонент этот наследник какого класса ?


 
Ketmar ©   (2006-08-17 12:20) [12]

> [10] KyRo   (17.08.06 12:16)
подумать -- не судьба? если AllocateHWnd() -- в конструкторе, то DeallocateHWnd() -- в деструкторе, натурально.


 
KyRo   (2006-08-17 12:33) [13]


> Сергей М. ©   (17.08.06 12:18) [11]
>
> > это кусок кода компоненты
> >
>
>
> Компонент этот наследник какого класса ?

class(TComponent)ъ

А может у кого нить есть хорошоработающий компонент для работы с треем. Его поменять для меня не проблема .
Был бы очень признателен olegmail@bigmir.net


 
Ketmar ©   (2006-08-17 12:39) [14]

> [13] KyRo   (17.08.06 12:33)
ушло, раз ты такой ленивый. %-)


 
Сергей М. ©   (2006-08-17 12:41) [15]


> у кого нить есть хорошоработающий компонент для работы с
> треем


TCoolTray (или как-то на то похожее) в составе RxLib


> class(TComponent)


Тогда уж TWinControl следовало бы использовать в кач-ве предка.


 
Ketmar ©   (2006-08-17 12:42) [16]

> [15] Сергей М. ©   (17.08.06 12:41)
TRxTrayIcon. %-)


 
KyRo   (2006-08-17 13:13) [17]

Спасибо вроде с новой компонентой проблема пропала


 
Loginov Dmitry ©   (2006-08-17 15:55) [18]

Отлавливай сообщение иконке WM_QUERYENDSESSION


 
KyRo   (2006-08-17 16:17) [19]


> Loginov Dmitry ©   (17.08.06 15:55) [18]
> Отлавливай сообщение иконке WM_QUERYENDSESSION

Такой вариант я уже пробовал . Да отлавливается программа нормально выключается но на этом перезагрузка винды прекращается как будто после попадения в трей винда теряет связь с программой и шлет сообщение уже новому для себя процесу.

Теперь тоже определил что проблема в компоненте работы с треем . С новой компонентой все ок !! Спасибо
> Ketmar ©



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

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

Наверх




Память: 0.51 MB
Время: 0.028 c
1-1153902869
DmitryK
2006-07-26 12:34
2006.09.10
Работа с RTF


1-1154181099
Destroyer
2006-07-29 17:51
2006.09.10
Строковый тип и nil


15-1156087524
PSPF2003
2006-08-20 19:25
2006.09.10
Улыбнитесь :)))


15-1155649947
DiamondShark
2006-08-15 17:52
2006.09.10
А у меня предложение.


6-1145860570
cosmos
2006-04-24 10:36
2006.09.10
Ошибка подключения к Paradox через ADO