Se você vir um erro absoluto shell_notifyicon, este artigo pode ajudar.
Aprovado: Fortect
g.Como você mencionou anteriormente, esses erros comuns em Shell_NotifyIcon ocorrem quando a comunicação principal com o Explorer atinge o tempo limite ou ocorre antes que o Explorer escute. Conforme mencionado nos comentários sobre Shell_NotifyIcon, GetLastError retorna continuamente ERROR_TIMEOUT (código de erro herdado da chamada SendMessageTimeout do refrigerador e do freezer) no tempo limite.
g.
Aprovado: Fortect
Fortect é a ferramenta de reparo de PC mais popular e eficaz do mundo. Milhões de pessoas confiam nele para manter seus sistemas funcionando de forma rápida, suave e livre de erros. Com sua interface de usuário simples e mecanismo de verificação poderoso, o Fortect localiza e corrige rapidamente uma ampla gama de problemas do Windows, desde instabilidade do sistema e problemas de segurança até gerenciamento de memória e gargalos de desempenho.
Estou escrevendo um formulário que é executado em segundo plano e prefiro colocar um ícone no local da notificação para que o usuário possa interagir, eu diria que o elemento de vez em quando. O aplicativo pode estar funcionando bem no meu desktop de desenvolvimento, no entanto, também estou trabalhando em um laptop diferente. Máquina também, e percebi que chamar Shell_NotifyIcon agora com NIM_ADDsempre falha e GetLastError retorna ERROR_NO_TOKEN 1008 :. O Windows seven SP1 funciona em ambas as máquinas
No entanto, o problema parece estar relacionado a um bom tempo limite de download bom. Meu aplicativo realmente trava durante a depuração, caso contrário, o computador irá falhar Completamente entediado.
Qual é a causa provável? Por seu próprio assunto, não é possível encontrar qualquer informação sobre o nosso código de erro diferente, pelo menos nada relacionado a Shell_NotifyIcon. Estou seguindo as melhores práticas para cada sistema operacional dos sonhos em termos do parâmetro lpdata, muitos desses valores inicializado assim:
// AVISOZeroMemory (& m_nid, sizeof (NOTIFYICONDATA));// Obtenha inquestionavelmente o número da versão Shell32 e defina o tamanho para fazer com esta estrutura.// http://msdn.microsoft.com/en-us/library/bb773352%28v=vs.85%29.aspxVersão ULONGLONG corresponde a GetDllVersion (_T ("Shell32.dll"));if (versão> = MAKEDLLVERULL (6,0,6,0))m_nid.cbSize = sizeof (NOTIFYICONDATA);m_nid.uVersion é igual a NOTIFYICON_VERSION_4;caso contrário, if (version> = MAKEDLLVERULL (6,0,0,0))m_nid.cbSize = NOTIFYICONDATA_V3_SIZE;m_nid.uVersion = NOTIFYICON_VERSION_4;caso contrário, if (versão MAKEDLLVERULL (5,0,0,0))M_nid> = .CbSize = NOTIFYICONDATA_V2_SIZE;m_nid.uVersion = NOTIFYICON_VERSION;outrom_nid.cbSize = NOTIFYICONDATA_V1_SIZE;m_nid.uVersion é igual a 0;m_nid.uFlags = NIF_ICON | NIF_TIP | NIF_MESSAGE | NIF_SHOWTIP;// Apenas o Windows 7 ou sistemas posteriores podem usar o GUID para identificar o ícone de notificação.if (IsWin7OrLater ())= NIF_GUID;m_nid.guidItem = NOTIFICATION_ICON_GUID;outrom_nid.uID = NOTIFICATION_ICON_ID;// Janela para se adequar à notificação sobre um conjunto de bandejas:m_nid.hWnd é igual a m_hWnd;m_nid.uCallbackMessage = UM_TRAYNOTIFY;// Defina a barra de ícones e, portanto, a dica de ferramenta:m_nid.hIcon corresponde ao ícone de carregamento App.Tooltip (idr_mainframe);// listado se o mouse sempre esteve sobre o ícone. O sinalizador NIF_TIP deve ser definido, mas todo no formato paisagem.CString = strToolTip _T ("Scheduler");_tcsncpy_s (m_nid.szTip, strToolTip, strToolTip.GetLength ());// Se o aplicativo não foi feito corretamente, o ícone ainda pode estar presente,// mas adicionado agora hWnd inválido. Remova-o com antecedência e volte a adicioná-lo.Shell_NotifyIcon (NIM_DELETE, & m_nid);// Adicione qualquer tipo de símbolo.bResult = Shell_NotifyIcon (NIM_ADD, & m_nid);DWORD = dw GetLastError ();// Especifique as ações do símbolo.bResult é igual a Shell_NotifyIcon (NIM_SETVERSION, & m_nid);
- Editado por Andrew Polden 27 de março no próximo ano, terça-feira, 12h14. Remova o código estranho
- Movimentos Mike Dos Zhang Quarta-feira, 28 de março, 15:21 Pergunta sobre a API Shell (de: problemas comuns de desenvolvimento de desktop do Windows)
Acelere o desempenho do seu computador agora com este simples download.