Заставить панель задач думать, что отдельная программа запуска - это то же самое, что и программа, которую она запускает?

203
Drew

Используемая мной программа (не разработанная и не поддерживаемая мной) использует ленту. Лента не организована так, как могла бы быть, но, к счастью, отредактировав файл ribbon.xml в папке установки программы, я могу настроить его так, чтобы с ним было легче работать (я уже получил одобрение от разработчики программного обеспечения, чтобы настроить его).

К сожалению, способ обновления программы немного странный. При установке создается папка с именем «version-versionGUID». Когда он обновляется, он удаляет текущую установку и заменяет ее папкой с именем "version-newversionGUID". Это вызывает у меня две проблемы: 1) Я не могу создать постоянный ярлык для программы, поскольку ее путь к файлу изменяется каждый раз, когда программа Обновления и 2) Каждый раз, когда программа обновляет мои изменения ленты.xml перезаписываются.

Чтобы сделать это менее болезненным, я создал сценарий VBS, который ищет каталог, в котором создаются папки version-versionGUID, и как только я нахожу папку установки программы, я могу запустить исполняемый файл. Проблема 1 решена - при запуске скрипта всегда будет запускаться последняя версия программы. Перед тем, как сделать это, скрипт удаляет файл ленты.xml в каталоге программы и клонирует в измененную версию с моими нужными правками. Проблема 2 решена - я прикрепил ярлык к панели задач, которая запустила wscript.exe "launcher.vbs", изменил его значок на значок программы, и тогда все хорошо, верно?

Я бы назвал это днем, но есть одна маленькая проблема. Когда программа запускается, вместо того, чтобы программа брала закрепленный значок панели задач, как это обычно делает закрепленная программа, создается новый элемент панели задач, и теперь у меня есть два элемента на панели задач (значок запуска и программа), когда обычно я есть только программа. Это, очевидно, потому, что программа запуска на самом деле не является программой, поэтому, конечно, она не будет принята. Тем не менее, я хотел бы заставить Windows думать, что эта программа запуска - это программа, так что она вступает во владение.

Итак, мой вопрос имеет два аспекта:

1) Можно ли каким-то образом заставить Windows заставить программу перехватить значок панели запуска на панели задач, а затем восстановить ее после закрытия программы?

2) Если нет, есть ли способ контролировать, где новая программа размещается на панели задач при ее открытии (я хотел бы разместить ее рядом с панелью запуска), отключить значок панели запуска на панели задач при запуске программы, и затем снова включить панель запуска, когда программа закрыта, все без перезапуска explorer.exe?

И в отношении 1, и в 2 я прекрасно выбираю VBScript - единственная причина, по которой он был использован, заключалась в том, что он был прост в использовании, а результат был легким. На самом деле, я бы предпочел выходить за пределы VBScript, потому что AFAIK не достаточно мощный для меня, чтобы реализовать автоматическое обновление при запуске программы запуска, чтобы мне не пришлось обновлять программу вручную.

0
Заставьте разработчиков программного обеспечения выкатить ваши исправления. Ramhound 8 лет назад 1
Это личное предпочтение в отношении ленты. Им нравятся огромные кнопки и неуклюжие ленты по умолчанию: на каждой вкладке заполнена только половина панели, а на нескольких вкладках дублируются кнопки, что делает ее «новой удобной для пользователя». «Опытный пользовательский дизайн [I] недостаточно дружелюбен для новых пользователей» и не будет рассматриваться в качестве официального макета. Drew 8 лет назад 0

0 ответов на вопрос