Hallo zusammen,
ich würde gerne ein NotifIcon (Tray Icon) nutzen, um zu sehen ob mein
Programm im hintergrund aktiv ist.
Bin kein Win-API spezialist und habe mir die Infos zusammengesucht.
Ich verwende Visual Studio 2015 und es ist eine Win32 Konsolenanwendung
C++.
Habe schon Google befragt und auch hier im Forum gesucht, jedoch noch
keine Lösung gefunden.
Ich bekomme das Icon zwar angezeigt, doch sobald ich mit der Maus über
dieses fahre, verschwindet es.
1 | #include "stdafx.h"
|
2 |
|
3 | #include <iostream>
|
4 | #include <windows.h>
|
5 | #include <shellapi.h>
|
6 |
|
7 | HICON ico;
|
8 | NOTIFYICONDATA nid;
|
9 | HWND hWnd;
|
10 |
|
11 | int main()
|
12 | {
|
13 | hWnd = FindWindow((LPCWSTR)"ConsoleWindowClass", NULL);
|
14 |
|
15 | ico = static_cast<HICON>(LoadImage(NULL,
|
16 | TEXT("main_1.ico"),
|
17 | IMAGE_ICON,
|
18 | 0, 0,
|
19 | LR_DEFAULTCOLOR | LR_SHARED | LR_DEFAULTSIZE | LR_LOADFROMFILE));
|
20 |
|
21 | nid.cbSize = sizeof(nid);
|
22 | nid.hIcon = ico;
|
23 | nid.hWnd = hWnd;
|
24 | //wcscpy_s(Tray.szTip, (wchar_t *)"My Application");
|
25 | //Tray.uCallbackMessage = WM_LBUTTONDOWN;
|
26 | nid.uFlags = NIF_ICON;
|
27 | nid.uID = 100;
|
28 |
|
29 | //set the icon in tasbar tray
|
30 | Shell_NotifyIcon(NIM_ADD, &nid);
|
31 |
|
32 | system("pause");
|
33 |
|
34 | Shell_NotifyIcon(NIM_DELETE, &nid);
|
35 |
|
36 | return 0;
|
37 | }
|