Как интегрировать приложение в панель задач Windows?

#windows #taskbar

#Windows #панель задач

Вопрос:

Я хочу интегрировать приложение в пользовательский интерфейс панели задач Windows (например, календарь или аккумулятор) Это будет расширяться при нажатии на него. Есть ли способ сделать это?

Ответ №1:

Вы ищете Shell_NotifyIcon() . Основным примером может быть:

 // Declare NOTIFYICONDATA details. 
// Error handling is omitted here for brevity. Do not omit it in your code.

NOTIFYICONDATA nid = {};
nid.cbSize = sizeof(nid);
nid.hWnd = hWnd;
nid.uFlags = NIF_ICON | NIF_TIP | NIF_GUID;

// Note: This is an example GUID only and should not be used.
// Normally, you should use a GUID-generating tool to provide the value to
// assign to guidItem.
static const GUID myGUID = 
{0x23977b55, 0x10e0, 0x4041, {0xb8, 0x62, 0xb1, 0x95, 0x41, 0x96, 0x36, 0x69}};
nid.guidItem = myGUID;

nid.guidItem = guid;

// This text will be shown as the icon's tooltip.
StringCchCopy(nid.szTip, ARRAYSIZE(nid.szTip), L"Test application");

// Load the icon for high DPI.
LoadIconMetric(hInst, MAKEINTRESOURCE(IDI_SMALL), LIM_SMALL, amp;(nid.hIcon));

// Show the notification.
Shell_NotifyIcon(NIM_ADD, amp;nid) ? S_OK : E_FAIL;
 

Для получения дополнительной информации и примеров прочитайте https://docs.microsoft.com/en-us/windows/win32/shell/notification-area