Comments 117
Патчить то, что под WFP нехорошо.
Пример: у меня одновременно открыто несколько проектов, каждый из них лежит в своей папке.
Мне удобно, когда панель задач выглядит подобным образом:

В противном случае, все папки будут собраны в кучу, да и к тому же Windows не позволяет менять их распорядок. По моему не очень удобно.
Можно, конечно, привыкнуть, но зачем? :)
Вот вам 61кб счастья.
Вы только что перевернули мой мир. Да, я конечно, знал и пробовал рабочие столы от разных создателей… но работало оно «не очень». То что есть такое же от MS я не знал.
Спасибо
Тут целый кладезь полезных утилит. Кстати ихние виртуальные столы с dwm никак не хотят дружить ;)
Да и удобнее, по моему, когда все на одном экране. Пока есть место :)
А когда оно заканчивается… тот твикер, о котором я упомянул в статье, умеет не только отключать группировку, но и группировать произвольные кнопки:

В macosx, когда я хочу прибегнуть к подобной модификации программы, я иду немножко другим путем.
С помощью obj-dump я достаю полный дамп заголовков из бинарника, а не дизасемблирую его. Имея эти заголовки я могу, воспользовавшись проектом SIMBL, IMBL (можно и без него, конечно — этот проект просто позволяет не писать сотню-другую boilerplate кода) подменить (привычный и знакомый многим swizzle) имплементации методов в момент запуска приложения.
Преимущество такого подхода — после обновления приложения модификация не слетит (вероятность изменения сигнатуры метода мала), бинарник не модифицируется и как следствия не слетает codesign и можно свои модификации отключить просто убрав их из инжектора.
Подумал, может статью написать… Такие интересные вещи можно этим делать оО
Кстати, я же уже публиковался с результатом: habrahabr.ru/post/151746/
Только вот не описывал, как я это сделал. Надо придумать новый tweak.
И функциональность Finder-а в виде цветных закладок и порядка сортировки значков сохранится, и ничего мешать не будет.
1. Свой инжектор.
2. Своим инжектором встраиваемся в свое приложение и подменяем методы
2.1 Уже в чужое (принимаются предложения. Пока что планирую научить Ecoute ходить по списку песен одним кликом, а не двумя)
3. Используем для этих целей SIMBL
Пошел писать инжектор, к черту матан.
www.startisback.com/index.ru.html
Речь о том, что если открыть блокнот, потом, например консоль, а потом ещё один блокнот, то они выстроятся не по порядку открытия, а два блокнота, и потом консоль.
То есть тут скорее фиксилась сортировка, а не группировка.
А два — привыкнуть к их группировке занимает от силы пару недель, и навигация потом уже не вызывает никаких затруднений.
Но есть и хорошая новость. Теперь есть твикер которому бы я доверил свой комп (в общем случае я не доверяю подобному софту). Спасибо Вам огромное.
На самом деле, портирование на Windows 8 было не такое сложное, код у обоих очень похож в плане панели задач. Единственное серьезное нововведение — поддержка нескольких мониторов.
Я почему спрашиваю: есть программа, которая на определенное событие умеет только прогрывать wav файл, хотелось бы научить ее пищать PC Speaker'ом.
msdn.microsoft.com/en-us/windows/hardware/gg463028.aspx
Насчет избыточной информации — для этого оно и предназначено. Зачем Microsoft их публикует, я не знаю :)
Печально, что до сих пор не сделали 64-битную Ольку.
1. Неизменяемый размер окна.
2. Custom list неюзабелен из-за микроскопического размера, Allow list и Reject list тоже будут неудобны.
3. Overwrite logfile и Save to custom dir должны быть дополнены кнопочкой выбора файла/директории с помощью системного диалога.
4. Список Accept/Reject не кастомизируется.
5. Отсутствие акселераторов (хотя возможно они присутствуют, но просто не видны пока не нажат Alt).
И мы ещё не видели, что скрывается за кнопкой Pro Mode, возможно там всё это исправлено.
Спасибо большое :-)
Если можно, расширьте возможности «не группировать закр. элементы» для отдельных процессов, то цены не будет вашему приложению
И до кучи вопрос: есть ли простая программа — вертикальное меню без каких-либо спецэффектов, котрое открывается при подведении мыши к краю экрана?
Твикер не модифицирует код, он использует более «совместимые» методы, среди которых:
* Хук функции методом подмены указателя в таблице виртуальных функций.
* Внутренние структуры.
* Subclassing окон.
За все время существования твикера, он ни разу не ломался из за обновления explorer.exe.
Все начинается с окошек:
hTaskbarWnd = FindWindow(L"Shell_TrayWnd", NULL);
hTaskbandWnd = (HWND)GetProp(hTaskbarWnd, L"TaskbandHWND");
hTaskListWnd = FindWindowEx(hTaskbandWnd, NULL, L"MSTaskListWClass", NULL);
У этих окошек проводник хранит указатель на класс в DWLP_MSGRESULT:
lpTaskListLongPtr = GetWindowLongPtr(hTaskListWnd, DWLP_MSGRESULT);
В этих классах есть много всего интересного, например массив кнопок панели задач, который, кстати, хранится в виде dynamic pointer array (DPA).
А я все внимательно прочитал. Спасибо, очень захватывающе.
К сожалению, когда на новой работе оказалась 7 винда, я не смог отключить идиотские всплывающие эскизы над кнопками на панели задач (как и не смог крепить папки в виде панели задач на части рабочего стола, как можно в XP). Эскизы всплывают при ховере. Ховер — самое ужасное событие на которое можно навесить действие (для сайтов кстати тоже).
Так вот, перерыв весь гугл, я не нашел ничего (было года 3.5 назад). Гуглил в несколько подходов в разные дни, каждый раз не в состоянии поверить что это невозможно пофиксить. Ну и в навыках гугления себя ламером не назову. Всегда считал что могу нагуглить все что угодно. Пришлось смириться.
Так я проработал 1.5 года.
Терпел, но не смирился.
Потом уволился с работы, и в один прекрасный день, решил купить себе новый ноут.
С предустановленной лицензионной win7.
Конечно, на своем собственном ноуте у меня было еще меньше желания продолжать видеть эти эскизы и группировку. Заранее зная о проблеме (предварительно погуглив еще разок) я предупредил продавца — куплю ноут только если отключите всплывающие эскизы. Продавец воспринял спокойно (видимо знал про Taskbar Tweaker, покопался в гугле минут пять и протянул мне бумажку с написанным названием твикера.
Вот такая история.
Теперь твикер ставлю на все 7 по дефолту в автозагрузку.
За программу автору невыразимый респект и почтение!
Он — Человек с большой буквы!
было бы круто еще добавить возможность настраивать какие программы закрывать клавишей Esc и возможность тягать окна с Alt(хотя для этого есть твикеры но что б не ставить 2)

Как видите, решается простым созданием ключа в реестре. У меня, правда, размер шрифта нестандартный, поэтому пришлось поэкспериментировать с MinWidth, но в итоге все работает идеально.
То, что описано по ссылке — вариант группировать, но не комбинировать.
То, что я описал в статье — полное отключение группировки.
Откройте у вас несколько копий блокнота, и сравните с этим скриншотом:

У вас они будут «слипнутые», и разлучить, или поменять местами, их не получится.
Некоторые аспекты описаны здесь.

rammichael.com/7-taskbar-numberer
Знаете, иногда бывает нужно что-нибудь замерить. Например, сколько секунд отрабатывает тот или иной алгоритм. И приходится либо считать в уме, либо кликать по часикам, открывая отдельный диалог. Пробовал разные утилиты — но всё не то. Хотелось бы страндартные часы, но просто с другим форматом отображения. Даже начали мысли посещать, что надо свою утилитку писать для этих целей :)
Чтобы временно раскрыть группу, можно использовать опцию Раскрывать: Активную группу / При наведении мыши.
Видео пример, с 0:55 по 1:05:
rammichael.com/7-taskbar-tweaker-v2-0
На этот раз сравниваются так называемые Application ID — идентификатор аппликации, по которым панель задач группирует кнопки.
Однажды знакомая, живущая в Германии, перевела «application» как «аппликация». Я её поправил, а она возразила, что «у вас тоже скоро все так будут говорить». Видимо, она была права :)
PS: Отправил вам денежку на пиво )))
Вау, я столько лет пользуюсь этой программой и не знал что её русскоязычный сделал :)
Попал сюда из статьи, что в Windows 11 всё плохо :(
С новой панелью задач все плохо, но пока можно вернуть старую:
https://rammichael.com/7-taskbar-tweaker-on-windows-11-with-windows-10s-taskbar
Пользователи Windows 11: качаем патченную DLL и твикер в одном флаконе в системную папку, чтобы вернуть панель задач.
Это, конечно, неправильно со стороны Microsoft — приучать пользователей пихать в системные каталоги патченные файлы.
Про Explorer Patcher - справедливости ради, это не "патченная DLL", а маленькая DLL, собранная со свободного исходного кода, которая грузится процессом explorer.exe и патчит его в памяти так, чтобы он использовал свой старый код, который еще не удалили. Название "Explorer Patcher", по моему, не удачное, но проект не мой.
Ну и оба инструмента - и Explorer Patcher, и 7+ Taskbar Tweaker - не запускаются от имени администратора. Так что почти любой установщик случайной программы имеет больше возможностей нарушить безопасность системы.
Дизассемблируем Windows Explorer — отключаем группировку на панели задач