Re: Как свернуть приложение в tray?
От: vadimcher  
Дата: 05.12.09 07:12
Оценка: 3 (1)
Здравствуйте, qdrj, Вы писали:

Q>Здравствуйте. Есть консольное приложение которое работает, как сервис. Возможно ли, чтобы при его запуске оно сворачивалось в трей? Я попробовал использовать ф-ю Shell_NotifyIcon, и в поле tnd.hIcon для структуры tnd указываю стандартную иконку(IDI_SHIELD). Проект компилируется, однако в трее пусто. Вообще возможно ли сделать такое для консольного приложения? Если да, то буду рад, если подскажете куда смотреть.


В простейшем случае тебе надо поступить так:
1) Если у тебя Express версия, то тебе надо создать иконку и файл ресурсов вручную (Express студия официально не поддерживает ресурсы, но на самом деле она их компилирует и добавляет).
a) icon.rc
1    ICON    "icon.ico"

б) icon.ico -- создаешь где хочешь, например, в бесплатном IcoFX.
в) добавляешь оба файла в папку с исходным текстом и в ветку Resource Files проекта.
2) Показываем иконку:
{ // add tray icon
    NOTIFYICONDATA nid = {};
    nid.cbSize = sizeof nid;
    nid.hWnd = GetConsoleWindow();
    nid.uFlags = NIF_ICON;
    nid.uID = 3;
    nid.hIcon = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(1));
    Shell_NotifyIcon(NIM_ADD, &nid);
}

3) Убираем, если надо: то же самое, только NIM_DELETE в конце.

Вот вроде и все.

А вот зайца кому, зайца-выбегайца?!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.