PDA

Показать полную графическую версию : как обновить иконки системного трея


jannaly
20-01-2013, 15:49
если зайти в Диспечер задач в процессы и удалить к примеру К ПРИМЕРУ uttorrent.exe или любую програму каторая лежит в трее то при удаление она там и остаётся в трее сам значёк!!? если подвести мышкой не нажимая то она исчезнит! как мне сделать имено командной строкой кагбы обновление самого explorer.exe чтобы исчезл сам значёк? и всё

любые команды! в голову даже идея как это сделать не приходит (( спасибо!

zion87
20-01-2013, 16:58
@echo off
taskkill /f /im explorer.exe
start "" explorer.exe
exit


только в голову не идет зачем??? ))))

jannaly
20-01-2013, 17:10
(( да решение хорошое ток вот убивает сам explorer (( а нельзя как нить подругому? или ток такое
решение есть? (( стоит 2003 server в xp точно такоеже встречал
искал по инету нарыл но не работает?(((
rundll32.exe user,RepaintScreen

Instant_SR
26-11-2013, 18:23
Погуглил, нашел команды "user"-библиотеки, для тех кому интересно, ранее использовалось user (скорее всего winXP) на W7 сейчас используется user32 библиотека.
для обновления рабочего стола достаточно в w7 "Выполнить"

rundll32.exe user32.dll,RedrawWindow

Для WinXP, возможно

rundll32.exe user,RepaintScreen

Не проверял
Суть в том, что в системном трее значки того же торрента после закрытия не исчезают. Проверил мыщью - ПКМ -> Обновить, тоже не исчезает. Весь этот дубляж пропадает только после наведения курсора мыши.
Вопрос: Есть что-то, пусть даже и в USER32.DLL, что обновляет системный трей?

есть еще вариант на w7 так же обновляет экран но на трей не действует:
RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters

вот еще .dll ковыряю установка фокуса на системный трей:
rundll32 SHELL32, Shell_NotifyIcon NIM_SETFOCUS
пока, без результатно...

вот нашел решение, но оно на мой взгляд корявое реализовано на ассемблере для себя использовать не буду жду идей тут...
ассемблерный вариант (http://www.manhunter.ru/assembler/484_prinuditelnoe_obnovlenie_ikonok_v_tree.html)

Instant_SR
02-12-2013, 17:25
более никто не предложит вариантов?... =(

Iska
02-12-2013, 18:37
Instant_SR, не хотите попробовать продолжить изыскания под .Net (http://forum.oszone.net/thread-272803.html)? Или как и там, категорически не подойдёт?

Instant_SR
02-12-2013, 19:23
Если в той ветке все пойдет удовлетворительно, есть ли вариант решения темы данного топа в .net?

Iska
02-12-2013, 19:46
Готового варианта нет, я пока не искал и не пробовал переводить код с ассемблера по приведённой Вами ссылке (только просмотрел).

mamont1
03-12-2013, 00:35
если зайти в Диспечер задач в процессы и удалить к примеру К ПРИМЕРУ uttorrent.exe »
nircmd.exe closeprocess uttorrent.exe
и процесс крякнет, и значок в трее.

Iska
03-12-2013, 01:22
и процесс крякнет, и значок в трее. »
Как раз не «крякнет», а, напротив:
Terminates the specified process, by closing its top level windows. As opposed to killprocess command, closeprocess doesn't force the process to be closed immediately. Instead, it send WM_CLOSE message to all top level windows of the specified process. However, be aware that this command will not work on process with no user interface.
— попытается корректно закрыть (а не прервать процесс), отсылая сообщение его окнам верхнего уровня.

mamont1
03-12-2013, 01:30
и процесс крякнет, и значок в трее. »
не правильно написал... "крякнет"
Закроет корректно - остальное в силе...

Iska
03-12-2013, 01:42
Закроет корректно - остальное в силе... »
И тоже неверно. Как верно — я привёл в цитате из документации — именно попытается. А дальше уже зависит от поведения самого приложения.




© OSzone.net 2001-2012