Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Иконка в SysTray

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4

Открыть новую тему     Написать ответ в эту тему

imaG



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Необходимо сворачивать приложение в иконку, в SysTray.

Всего записей: 16 | Зарегистр. 24-10-2001 | Отправлено: 17:32 30-10-2001
Daemon



Le Roi Soleil
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Буду писать на Делфях. Переведешь потом во что хочешь.
1. Определяешь тип:
  TNotifyIconData = record
    cbSize: DWord;
    Wnd: HWND;
    uID: Uint;
    uFlags: Uint;
    uCallbackMessage: Uint;
    hIcon: HIcon;
    szTip: array [0..63] of AnsiChar;
  end;
Затем у тебя есть главная форма. Определяешь ее создание так:
 
constructor TfrmMain.Create(AOwner:TComponent);
begin
  inherited Create(AOwner);
  FNotifyIconData.cbSize:= SizeOf(TNotifyIconData);
  FNotifyIconData.hIcon:= Application.Icon.Handle;
  StrPCopy(FNotifyIconData.szTip,Application.Title);
  FNotifyIconData.uCallbackMessage:= TRAY_MSG;
  FNotifyIconData.uFlags:= NIF_MESSAGE or NIF_ICON or NIF_TIP;
  FNotifyIconData.uID:=1;
  FNotifyIconData.Wnd:= frmMain.Handle;
  Shell_NotifyIcon(NIM_ADD,@FNotifyIconData);
end;
(В данном случае главная форма СРАЗУ сворачивается в SysTray и необходимо сделать еще в проекте Application.ShowMainForm:= False)
 
Что не понятно - пиши т.к. это в кратце. Но у меня все работает.  
А вообще посмотри в "Делфи 5 Руководство разработчика" - великая книга!


----------
Каждый имеет то, что он заслуживает

Всего записей: 1260 | Зарегистр. 24-10-2001 | Отправлено: 17:53 30-10-2001
imaG



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Daemon
Спасибо.
 
Только, забыл добавить, что сворачивать надо  в VC++. Sorry.
 

Всего записей: 16 | Зарегистр. 24-10-2001 | Отправлено: 17:57 30-10-2001
Daemon



Le Roi Soleil
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
imaG
 На самом деле не имеет значение в чем писать. В любом случае используется функция API Shell_NotifyIcon
 А принцип использования я тебе написал. Дерзай. Если что - все равно пиши.


----------
Каждый имеет то, что он заслуживает

Всего записей: 1260 | Зарегистр. 24-10-2001 | Отправлено: 18:20 30-10-2001
Wowik



The Warlock
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Несколько замечаний
TNotifyIconData тип уже определен в модуле shellapi
соответственно для VC в хейдере shellapi.h определен тип NOTIFYICONDATA
Посмотри http://www.webprog.vov.ru/components/index.shtml?id=5
Там на Delphi простейшая реализация IkonTray

----------
Настоящие программисты не ищут легких путей!

Всего записей: 1192 | Зарегистр. 27-08-2001 | Отправлено: 04:35 31-10-2001
imaG



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OK.
Всё получилось, всем спасибо.

Всего записей: 16 | Зарегистр. 24-10-2001 | Отправлено: 12:15 02-11-2001
Farch



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
привет всем
значит такая беда ...
есть приложение которое сворачиваеться в systray и нужно сделать для него right click меню которое !!! будет изменяться во время выполнения программы посоветуйте компанент или как это на API написать если это возможно? заранее всех благадарю!

Всего записей: 3211 | Зарегистр. 25-12-2001 | Отправлено: 23:08 20-08-2002
UncoNNecteD



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Farch
Используй обычный TPopupMenu, а вот вызывать его (показывать) придется через win messages. Обрабатывай сообщения приложения и лови правый клик!

----------
-= Я тут чертовски давно =-

Всего записей: 4040 | Зарегистр. 21-03-2002 | Отправлено: 02:12 21-08-2002
Farch



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
UncoNNecteD
я в этом новечёк есть где нить статьи или можешь рассказать поподробнее но уже и за это стпасибо!

Всего записей: 3211 | Зарегистр. 25-12-2001 | Отправлено: 10:20 21-08-2002
EndoR



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
UncoNNecteD
а он с иконкой будет пахать?
Wowik
блин, че-то не грузиться...


----------
Fear is an efficient tool of management.

Всего записей: 1159 | Зарегистр. 24-01-2002 | Отправлено: 16:48 21-08-2002
dremon



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Могу прислать пример использования с исходниками на C++ - создание иконки, добавление popup-меню, обработка вызова меню.
Все на чистом Win32 API.

Всего записей: 961 | Зарегистр. 21-08-2001 | Отправлено: 17:31 21-08-2002
Farch



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Всего записей: 3211 | Зарегистр. 25-12-2001 | Отправлено: 18:14 21-08-2002 | Исправлено: Farch, 13:24 07-04-2010
dremon



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Farch
Послал

Всего записей: 961 | Зарегистр. 21-08-2001 | Отправлено: 13:16 22-08-2002
Farch



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dremon
thanks!

Всего записей: 3211 | Зарегистр. 25-12-2001 | Отправлено: 15:49 22-08-2002
ironwit

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
специалистам вопрос по trayicon. Как получить список иконок(handle) для дальнейшей с ними работы(имитация кликов на них...)?

Всего записей: 1892 | Зарегистр. 11-10-2002 | Отправлено: 10:11 01-11-2002
f_serg



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ironwit

Цитата:
Как получить список иконок(handle)

Никак. В трее, собственно, нет иконок. Там просто картинки, которые отрисовывает explorer. Он же отслеживает мышь и шлет события окнам.

Всего записей: 1706 | Зарегистр. 11-09-2002 | Отправлено: 11:44 01-11-2002
ironwit

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Хорошо, уточним.
 
Как сэмулировать нажатие клавиши мышки над строго определенной иконкой(окном) и работать с открытым Popup-ом?

Всего записей: 1892 | Зарегистр. 11-10-2002 | Отправлено: 12:00 01-11-2002
UncoNNecteD



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ironwit
Просто шли мессадж нужному приложению.
EndoR
там не иконка как уже написали.

----------
-= Я тут чертовски давно =-

Всего записей: 4040 | Зарегистр. 21-03-2002 | Отправлено: 13:52 01-11-2002
ironwit

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
как послать сообщение например ICQ?

Всего записей: 1892 | Зарегистр. 11-10-2002 | Отправлено: 14:24 01-11-2002
f_serg



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ironwit
FindWindow() - находишь окно ICQ. Оно найдется, даже если свернуто в трей. SendMessage() - шлешь сообщение.

Всего записей: 1706 | Зарегистр. 11-09-2002 | Отправлено: 16:10 01-11-2002
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Иконка в SysTray


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru