![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Панель задач. [D7, XP]
Scavenger © (2006-01-25 14:56:00)Уважаемые Мастера! Есть программа, как сделать так чтобы она работала в фоновом режиме, тобиш ее значок был на панели задач и сразу при загрузке компа она начинала работать?
Scavenger (2006-01-26 11:25:00) [1]Всем спасибо все получилось. Нашел библиотеку RGTray95.
Ярлык загнал в автозагрузку. Форма при запуске минимизируется в значок возле часов. Использовал свойство wsMinimized формы.
При щелчке по иконке форма востанавливается.
procedure TForm1.PGTrayIcon951Click(Sender: TObject);
begin
PGTrayIcon951.ShowApplication;
form1.WindowState:=WsNormal;
end;
DenXi (2006-01-25 21:53:00) [2]ShellAPI используй в Uses, а еще не забудь, что TfrmVillainy - этоназвание класса формы, у тя оно может быть что-то вроде TForm1 и т.д.
SergP. (2006-01-25 18:29:00) [3]
> А вот как значок программы выставить на панель задачь там
> где часы.
Так куда тебе все-таки нужно: на панель задач, или там где часы?
azl (2006-01-25 18:06:00) [4]Скачай Rx Library
http://www.rxlib.ru/rx/rx_libr.htm
И будет тебе счастье
Scavenger (2006-01-25 17:03:00) [5]В процедуре TfrmVillainy.CreateTryIcon кричит что не знает TNotifyIconData. Посмотрел по справке данный, тип, но не нашел. Дай описание пожалуйста.
azl (2006-01-25 16:59:00) [6]Да какие проблемы?
Используй RxTrayIcon из Rx Library для того чтобы программа была в tray
WindowState := wsMinimized; - Программа будет стартовать свернутой.
Scavenger (2006-01-25 16:31:00) [7]Спасибо за подсказку. Сейчас буду пробывать.
DenXi (2006-01-25 16:07:00) [8]дык вот....... при загрузке (или таме еще когда) манипулируй свойством Visible главной формы... Например, в WMTryIcon (процедуре обработки событий значка в трее) можно писать Visible:= true.... а при загрузке Visible:= false. Вот и все!
DenXi (2006-01-25 16:03:00) [9]только LRShiftне нада.
А чтобы прога в автозагрузке висела............. для этого могу дать другой код, нада поискать
DenXi (2006-01-25 15:59:00) [10]создай сконстанту сообщения const WM_TRYICON = WM_USER+123;
потом в private формы опиши :
procedure CreateTryIcon (n: Integer; Tip: String);
procedure DeleteTryIcon (n: Integer);
procedure WMTryIcon(var Msg: TMsg); message WM_TRYICON;
последняя процедура обрабатывает сооьщения от иконки около часов
Здесь создаем иконку
procedure TfrmVillainy.CreateTryIcon (n: Integer; Tip: String);
var
nidata: TNotifyIconData;
begin
with nidata do
begin
cbSize:= SizeOf (TNotifyIconData);
Wnd:= frmvillainy.Handle;
uID:= n;
uFlags:= NIF_ICON or NIF_MESSAGE or NIF_TIP;
uCallBackMessage:= WM_TRYICON;
hIcon:= Application.Icon.Handle;
StrPCopy (szTip,Tip);
end;
Shell_NotifyIcon (NIM_ADD, @nidata);
end;
здесь мы ее удаляем
procedure TfrmVillainy.DeleteTryIcon (n: Integer);
var
nidata: TNotifyIconData;
begin
with nidata do
begin
cbSize:= SizeOf (TNotifyIconData);
Wnd:= frmvillainy.Handle;
uID:= n;
end;
Shell_NotifyIcon (NIM_DELETE, @nidata);
end;
procedure TfrmVillainy.WMTryIcon(var Msg: TMsg);
begin
if (msg.wParam=515) and LRShift then
begin
//делаем при нажатии на иконку
end
end;
Scavenger (2006-01-25 15:52:00) [11]Тут не совсем то, если я добавлю прогу в автозагрузку, то при загрузке вылезит окно проги. Мне этого не нужно. А вот как значок программы выставить на панель задачь там где часы. Мне нужно чтобы она работала в фоновом режиме наподобии как антивирусник.
azl (2006-01-25 15:05:00) [12]Помести ее в автозагрузку и будет тебе счасье:-)))
azl (2006-01-25 15:05:00) [13]Помести ее в автозагрузку и будет тебе счастье:-)))