I enable "Launch DirectUpdate control/engine at startup" but it doesn't fix the problem.
I see DUControl.exe running.
If I terminate DUControl.exe and relaunch it manually, the notification icon shows up.
This is because DUControl is failing to register the icon but not retrying it.
If there are many notification icons being registered at login, the API often returns an error.
The application is supposed to retry until success.
I have an experience writing an application for notification icon and I had to workaround the problem like this.
Code: Select all
INT retry = 0;
INT timeout = 0;
while (!Shell_NotifyIcon(NIM_ADD, nid))
if (GetLastError() == ERROR_TIMEOUT)
if (Shell_NotifyIcon(NIM_MODIFY, nid))