Здравствуйте, 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 в конце.
Вот вроде и все.