PDA

Показать полную графическую версию : [решено] Разворот трея win 7


FrAnKlinshtein
31-05-2017, 02:42
ОС: Win7x64
Предистория:
В трее скопилось много значков, все нужны. Постоянно отображаясь значки мешают. Неудобно разворачивать трей и открывать прогу, хочется навести и сразу увидеть их все.
Задача:
При наведении курсора мыши на область трея (условно - угол экрана) - разворачивать трей.
Крайне желательно реализовать это встроенными средствами (vbs/ps/api etc.) чтобы не мудрить с писаниной на С++ и т.д.
Результаты:
Обработать положение курсора задача тривиальная. Сложнее найти функцию для разворота трея.
В свою очередь в винде есть настройка, которая сразу переключает режим трея:
https://lh3.googleusercontent.com/-bvI5-Ennwk0/WS3_5gi9xAI/AAAAAAAADQE/33iYTi2L35UEs2zM8m0Dq9RNACNtsHpUgCHM/s0/02-26-17_34_851.png
Пробовал:
1) Обращения к библиотекам:
RunDll32.exe shell32.dll,Options_RunDLL 1
control.exe /name Microsoft.NotificationAreaIcons
результата нет, не нашел аргументы/параметры которыми можно дополнить команды для обращения к функции разворота.

2) PowerShell (+Boxstarter +Chocolatey) тоже не дает зацепок.

3) Через обновление параметра реестра тоже не решается:
rundll32.exe user32.dll,SystemParametersInfo SPI_(нет функции)
RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters ,1 ,True

4) Да, я знаю про сущестрование горячих клавиш: Win+B + Пробел
Их можно нажать достаточно быстро и откроется меню трея, но это не то что нужно. Нужен именно разворот!

Может кто-нибудь знает API или VBS, сталкивался с подобными решениями?
Подскажите, кто что сможет, пожалуйста! Куда копать, весь инет облазел...

NickM
31-05-2017, 08:47
FrAnKlinshtein, вот, что нашлось в сети - (1 (https://hianz.wordpress.com/2013/09/03/new-windows-tray-notification-manager-is-here/)), (2 (https://social.msdn.microsoft.com/Forums/azure/en-US/db0089f6-c5e2-4575-97a0-4be935e67bf5/notifyicon1-method-to-always-show-icon?forum=vbgeneral)).
Во втором случае, в *.vbs коде используется *.dll автора из первого. Также имеется исходный код на С++.

FrAnKlinshtein
16-06-2017, 05:40
FrAnKlinshtein, вот, что нашлось в сети - (1), (2).
Во втором случае, в *.vbs коде используется *.dll автора из первого. Также имеется исходный код на С++. »

Спасибо. Видел это уже, по исходнику пропустил только. И это работает, только тут все равно С++. Хотелось без кода, придется отдельную прогу лепить - на одного нахлебника жрущего ПЗУ больше )

Похоже других способов нет. Будем считать вопрос решенным.




© OSzone.net 2001-2012