Si ve un error shell_notifyicon, esta breve publicación puede ayudar.
Aprobado: Fortect
g.Como mencionó anteriormente, estos errores comunes para Shell_NotifyIcon ocurren cuando la comunicación principal con Explorer se agota o surge antes de que Explorer escuche. Como se menciona en terminado en Shell_NotifyIcon, GetLastError generalmente devuelve ERROR_TIMEOUT (código de área de error heredado heredado de la llamada interna SendMessageTimeout) después del tiempo de espera.
gramo.
Aprobado: Fortect
Fortect es la herramienta de reparación de PC más popular y eficaz del mundo. Millones de personas confían en él para mantener sus sistemas funcionando de forma rápida, fluida y sin errores. Con su sencilla interfaz de usuario y su potente motor de análisis, Fortect encuentra y soluciona rápidamente una amplia variedad de problemas de Windows, desde la inestabilidad del sistema y los problemas de seguridad hasta la gestión de la memoria y los cuellos de botella en el rendimiento.
Estoy escribiendo una aplicación que se ejecuta en segundo plano y quiero colocar un popular en el área de notificación para que el conductor pueda interactuar con el elemento de vez en cuando. La aplicación actualmente funciona bien en mi escritorio de desarrollo, pero también estoy trabajando con una computadora portátil diferente. Machine también, y sabía que llamar a Shell_NotifyIcon con NIM_ADDsiempre falla y GetLastError devuelve ERROR_NO_TOKEN 1008 :. Windows 7 SP1 funciona en ambas máquinas
Sin embargo, el problema parece que estará relacionado con un buen tiempo de espera de descarga. Mi aplicación realmente falla durante la depuración; de lo contrario, la estación de trabajo de la computadora fallará. Completamente inactiva.
¿Cuál es sin duda alguna la causa probable? Por sí solo no puede encontrar ningún informe sobre nuestro propio código de error, al menos cualquier cosa relacionada con Shell_NotifyIcon. Estoy siguiendo las prácticas óptimas para cada sistema operativo de destino en terminologías del parámetro lpdata, la mayoría de algunos de estos valores inicializado así:
// AVISOZeroMemory (& m_nid, tamaño de (NOTIFYICONDATA));// Obtenga el número de versión de Shell32 pero establezca el tamaño de esta estructura.// http://msdn.microsoft.com/en-us/library/bb773352%28v=vs.85%29.aspxLa variación ULONGLONG coincide con GetDllVersion (_T ("Shell32.dll"));if (versión> = MAKEDLLVERULL (6,0,6,0))m_nid.cbSize = sizeof (NOTIFYICONDATA);m_nid.uVersion = NOTIFYICON_VERSION_4;de lo contrario, si (versión> implica MAKEDLLVERULL (6,0,0,0))m_nid.cbSize = NOTIFYICONDATA_V3_SIZE;m_nid.uVersion = NOTIFYICON_VERSION_4;de lo contrario, debería ser (MAKEDLLVERULL versión (5,0,0,0))M_nid> = .CbSize = NOTIFYICONDATA_V2_SIZE;m_nid.uVersion = NOTIFYICON_VERSION;otrom_nid.cbSize = NOTIFYICONDATA_V1_SIZE;m_nid.uVersion = 0;m_nid.uFlags = NIF_ICON | NIF_TIP | NIF_MESSAGE | NIF_SHOWTIP;// Solo Windows 7 o simplemente sistemas posteriores pueden usar el GUID para configurar el icono de notificación.si (IsWin7OrLater ())= NIF_GUID;m_nid.guidItem = NOTIFICATION_ICON_GUID;otrom_nid.uID = NOTIFICATION_ICON_ID;// Ventana de notificación sobre una colección de bandejas:m_nid.hWnd = m_hWnd;m_nid.uCallbackMessage = UM_TRAYNOTIFY;// Definir nuestra propia barra de iconos e información sobre herramientas:m_nid.hIcon corresponde al icono de carga de App.Tooltip (idr_mainframe);// se muestra si el mouse estaba siempre sobre el símbolo. Es necesario establecer la bandera NIF_TIP, pero en formato apaisado.CString significa strToolTip _T ("Programador");_tcsncpy_s (m_nid.szTip, strToolTip, strToolTip.GetLength ());// Si su aplicación no se cerró correctamente, es posible que la imagen aún esté presente,// pero añadido ahora inaceptable hWnd. Quítelo antes de volver a agregarlo.Shell_NotifyIcon (NIM_DELETE, & m_nid);// Agrega un símbolo.bResult = Shell_NotifyIcon (NIM_ADD, & m_nid);DWORD = dw GetLastError ();// Especifica el comportamiento del símbolo.bResult = Shell_NotifyIcon (NIM_SETVERSION, & m_nid);
- Editado por Andrew Polden 27 de marzo del año que viene, martes, 12:14 pm. Eliminar código innecesario
- Se mueve Mike Dos Zhang Miércoles, 28 de marzo, 15:21 Situación de la API de Shell (de: Problemas comunes de desarrollo de escritorio de Windows)
Acelere el rendimiento de su computadora ahora con esta simple descarga.