Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   как обновить иконки системного трея (http://forum.oszone.net/showthread.php?t=251917)

jannaly 20-01-2013 15:49 2071004

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

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

zion87 20-01-2013 16:58 2071028

Код:

@echo off
taskkill /f /im explorer.exe
start "" explorer.exe
exit

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

jannaly 20-01-2013 17:10 2071037

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

Instant_SR 26-11-2013 18:23 2261961

Погуглил, нашел команды "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
пока, без результатно...

вот нашел решение, но оно на мой взгляд корявое реализовано на ассемблере для себя использовать не буду жду идей тут...
ассемблерный вариант

Instant_SR 02-12-2013 17:25 2265527

более никто не предложит вариантов?... =(

Iska 02-12-2013 18:37 2265570

Instant_SR, не хотите попробовать продолжить изыскания под .Net? Или как и там, категорически не подойдёт?

Instant_SR 02-12-2013 19:23 2265604

Если в той ветке все пойдет удовлетворительно, есть ли вариант решения темы данного топа в .net?

Iska 02-12-2013 19:46 2265621

Готового варианта нет, я пока не искал и не пробовал переводить код с ассемблера по приведённой Вами ссылке (только просмотрел).

mamont1 03-12-2013 00:35 2265825

Цитата:

Цитата jannaly
если зайти в Диспечер задач в процессы и удалить к примеру К ПРИМЕРУ uttorrent.exe »

nircmd.exe closeprocess uttorrent.exe
и процесс крякнет, и значок в трее.

Iska 03-12-2013 01:22 2265845

Цитата:

Цитата mamont1
и процесс крякнет, и значок в трее. »

Как раз не «крякнет», а, напротив:
Цитата:

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 2265846

Цитата:

Цитата mamont1
и процесс крякнет, и значок в трее. »

не правильно написал... "крякнет"
Закроет корректно - остальное в силе...

Iska 03-12-2013 01:42 2265859

Цитата:

Цитата mamont1
Закроет корректно - остальное в силе... »

И тоже неверно. Как верно — я привёл в цитате из документации — именно попытается. А дальше уже зависит от поведения самого приложения.


Время: 09:14.

Время: 09:14.
© OSzone.net 2001-