Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Tray


Автор: SoWa 5.1.2005, 06:32
Ответьте пожалуйста на такой вопрос:
Можно-ли любое запущенное приложение свернуть в трей, например Word?

Принцип действия наверное такой:
-Убрать приложение из панели задач(Word)
-В своей программе динамически создать JvTrayIcon
-Присвоить ему иконк уданного приложения(Word)
-Заставить его при двойном щелчке развернуть приложение(Word)

А как это можно написать, хоть бы убирание из панели задач подскажите! smile

Автор: Alex 5.1.2005, 09:49
Не нужно создавать 2 темы на 1 вопрос!

Автор: Pathfider 5.1.2005, 12:33
В принципе можно, НО управление иконкой в трее ведется из твоей программы.

Автор: Vit 5.1.2005, 17:14
Вот программа которая это делает с исходниками. Я её очень люблю - ставишь в автозапуск и после любое приложение при клике на кнопку минимизации правой кнопкой мыши минимизируется не на таск бар а в трэй. Классная прога, всем рекомендую. Она не работает только для тех приложений, что написаны на Дельфи - там в связи с невидимым объектом Application получаются проблемы. Всем очень рекомендую!

Автор: Akella 6.1.2005, 12:46
СПАСИБО

Автор: SoWa 12.1.2005, 04:41
Vit, програ конечно хорошая, но надо бы для всех приложений.
Я придумал как это реализовать, но есть один вопрос. Я его в новой теме задам.

Автор: Vit 12.1.2005, 18:26
Цитата(SoWa @ 11.1.2005, 19:41)
Vit, програ конечно хорошая, но надо бы для всех приложений.


?

Автор: Akella 13.1.2005, 10:27
Vit, сам же писал
Цитата
Она не работает только для тех приложений, что написаны на Дельфи - там в связи с невидимым объектом Application получаются проблемы. Всем очень рекомендую!


Автор: Guest 13.1.2005, 15:24
вот код: делает всё -------

uses
.... ,shellApi;

Procedure Tmainform.Ic(n:Integer;Icon:TIcon);{tray procedure}
Var
i:integer;
Nim:TNotifyIconData;{tray îáúåêò}
begin
//îáðàáîòêà tray èêîíêè
With Nim do
Begin
cbSize:=SizeOf(Nim);
Wnd:=mainform.Handle;
uID:=1;
uFlags:=NIF_ICON or NIF_MESSAGE or NIF_TIP;
hicon:=Icon.Handle;
uCallbackMessage:=wm_user+1;
szTip[i]:= 'hint';
end;
End;
Case n OF
1: Shell_NotifyIcon(Nim_Add,@Nim);//создать
2: Shell_NotifyIcon(Nim_Delete,@Nim);//убить
3: Shell_NotifyIcon(Nim_Modify,@Nim);//изменить
End;
end;


procedure Tmainform.IconMouse(var Msg:TMessage);
Var p:tpoint;
begin
GetCursorPos(p); Case Msg.LParam OF
WM_LBUTTONUP,WM_LBUTTONDBLCLK:

Begin
if ready=1then begin
Ic(2,TNicon);
ShowWindow(Handle,SW_SHOWNORMAL);//этот код можно исп для скрытия пр-я


end;

End;
WM_RBUTTONUP:

Begin
if ready=1then begin
SetForegroundWindow(Handle);

about1.Visible:=true;
PopupMenu1.Popup(p.X,p.Y);

PostMessage(Handle,WM_NULL,0,0)
end;
end;
End;
end;


если вопросы есть то на асю пишите

Автор: tcomponent 13.1.2005, 15:30
кстати ася от tcomponent (я забыл выполнить вход)...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)