RETIRAR ICONE DA BANDEJA APÓS KILL PROCESS
Utilizo um NotifyIcon para colocar um icone na bandeja de um executável, mas se eu encerro esse executável através de outro executável via process.kill, esse icone ainda permance na bandeja, isso mesmo após o exe ser encerrado e só desaparece ao passar o mouse sobre ele.
Alguém sabe como encerrar o .exe via process.kiil e também limpar a bandeja ao mesmo tempo ?
Alguém sabe como encerrar o .exe via process.kiil e também limpar a bandeja ao mesmo tempo ?
Acabei de fazer mais uma pesquisa e as informações são que isso é um problema do windows mesmo, deram como como exemplo o outlook que acontece a mesma coisa, mas espero um pouco mais.
O programa que cria o Ãcone é responsável por remover ele, se o programa é finalizado pelo Kill ele não tem como remover o Ãcone, pois o Kill simplesmente mata o processo não permitindo ele executar nenhum código mais, ficando assim o Ãcone lá.
O que acontece quando se passa o mouse no Ãcone e ele some na verdade é o Explorer tentando informar a janela do programa que estão interagindo com o Ãcone e então ele detecta que a janela já não existe mais, e quando ele detecta que ela não existe mais ele remove o Ãcone.
Então quando o Ãcone fica lá eu não diria que é um problema do Windows e sim do programa que foi finalizado de forma indevida.
O que acontece quando se passa o mouse no Ãcone e ele some na verdade é o Explorer tentando informar a janela do programa que estão interagindo com o Ãcone e então ele detecta que a janela já não existe mais, e quando ele detecta que ela não existe mais ele remove o Ãcone.
Então quando o Ãcone fica lá eu não diria que é um problema do Windows e sim do programa que foi finalizado de forma indevida.
Certinho OCELOT,
Então, eu queria identificar e remover assim como o explorer faz.
Identificar normal, mas como remover ele dali ?.
Então, eu queria identificar e remover assim como o explorer faz.
Identificar normal, mas como remover ele dali ?.
Não tem como você remover ele, só o programa que criou ele consegue remover. O Explorer consegue remover quando identifica que o programa não está mais rodando porque é o Explorer que está exibindo o Ãcone.
Não existe nenhuma forma oficial de se fazer isso, provavelmente se encontrar algo vai ser através da API FindWindowEx para encontrar o handle do controle que exibe os Ãcones e tentar modificá-lo diretamente, mas isso é basicamente uma gambiarra que pode nem funcionar da mesma forma em versões diferentes do Windows ou até mesmo no caso do Ãcone estar visÃvel ou oculto na bandeja.
Não existe nenhuma forma oficial de se fazer isso, provavelmente se encontrar algo vai ser através da API FindWindowEx para encontrar o handle do controle que exibe os Ãcones e tentar modificá-lo diretamente, mas isso é basicamente uma gambiarra que pode nem funcionar da mesma forma em versões diferentes do Windows ou até mesmo no caso do Ãcone estar visÃvel ou oculto na bandeja.
Tópico encerrado , respostas não são mais permitidas