diff --git a/server/2015Remote/2015RemoteDlg.cpp b/server/2015Remote/2015RemoteDlg.cpp index 02dab42..c65b7e6 100644 --- a/server/2015Remote/2015RemoteDlg.cpp +++ b/server/2015Remote/2015RemoteDlg.cpp @@ -1144,19 +1144,18 @@ VOID CMy2015RemoteDlg::CreatStatusBar() VOID CMy2015RemoteDlg::CreateNotifyBar() { - // GUID 用于 Windows 10/11 Toast 通知关联托盘图标 - // {A1B2C3D4-E5F6-7890-ABCD-EF1234567890} - static const GUID NOTIFY_ICON_GUID = - { 0xA1B2C3D4, 0xE5F6, 0x7890, { 0xAB, 0xCD, 0xEF, 0x12, 0x34, 0x56, 0x78, 0x90 } }; - m_Nid.uVersion = NOTIFYICON_VERSION_4; m_Nid.cbSize = sizeof(NOTIFYICONDATA); //大小赋值 m_Nid.hWnd = m_hWnd; //父窗口 是被定义在父类CWnd类中 m_Nid.uID = IDR_MAINFRAME; //icon ID - m_Nid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP | NIF_GUID; //托盘所拥有的状态 + // 注意:不加 NIF_GUID。NIF_GUID 会把托盘图标的注册和 EXE 完整路径绑死 + // (MSDN:If a Shell_NotifyIcon call uses a GUID that is recognized as + // belonging to a different application path, the call will fail), + // 导致 Debug 和 Release 编译产物(路径不同)相互冲突——先注册的占住 GUID, + // 后启动的 NIM_ADD 静默失败、托盘没图标。 + m_Nid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP; //托盘所拥有的状态 m_Nid.uCallbackMessage = UM_ICONNOTIFY; //回调消息 m_Nid.hIcon = m_hIcon; //icon 变量 - m_Nid.guidItem = NOTIFY_ICON_GUID; // 先删除可能残留的旧图标(程序异常退出时可能残留) Shell_NotifyIcon(NIM_DELETE, &m_Nid);