Имя RemoteApp на панели задач не обновляется

479
wysiwyg

Я использую подключение RemoteApp из Windows 7, к машине с Windows Server 2012. Очень часто имя приложения на панели задач не будет обновляться при изменении фактической области заголовка окна программы. Я нашел эту статью Microsoft, которая детализирует эту явно известную проблему

симптомы

При работе с соединением RemoteApp сервера терминалов имя приложения на панели задач не отображается должным образом. Например, при подключении к приложению Product Studio имя, указанное на панели задач, отображается как (Удаленно):

enter image description here

Ожидаемым результатом будет то, что при подключении к приложению Product Studio имя, указанное на панели задач, отображается как Имя приложения (Удаленно).

enter image description here

причина

Эта проблема возникает потому, что локальная панель задач не получает событие EVENT_OBJECT_NAMECHANGE из системы из-за проблемы синхронизации. EVENT_OBJECT_NAMECHANGE необходим для обновления информации заголовка панели задач.

разрешение

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

Предложенное выше решение закрытия и перезапуска приложения, очевидно, не является идеальным, и в любом случае, похоже, не работает. Есть ли какой-нибудь способ «принудительно» обновить панель задач, возможно, с помощью скрипта AHK? Или любой другой возможный обходной путь для этого?

1

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

3
Daniel Keymer

Вероятно, самый простой способ сделать это, на самом деле не навязчивым, - это пройти через удаленный защищенный рабочий стол (нажмите Ctrl+ Alt+ End, затем Escснова отступите от него - что, по моему мнению, должно быть возможно автоматизировать с помощью AHK), хотя вам нужно сосредоточиться на клавиатуре. окно RemoteApp для его работы).

Это заставит серверную часть RemoteApp пересчитывать окна, в течение которых он будет выбирать обновленный заголовок окна.

Альтернативный метод, который я упомяну для полноты - вероятно, это больше проблем, чем стоит - это перезапустить rdpshell.exeиз удаленного сеанса.

Спасибо @ Даниэль Кеймер. К сожалению, это не работает для меня. Я даже пытался убить проводника и снова запустить его, но это тоже не сработало. Пока что я нашел единственный способ обновить его - отключить подключение RemoteApp (оставив программы работающими на стороне сервера) и подключиться заново. Можете ли вы уточнить альтернативный метод, который вы упомянули? wysiwyg 7 лет назад 0
ХОРОШО. Если метод Ctrl + Alt + End не работает, я сомневаюсь, что перезапуск `rdpshell.exe` тоже будет. Тем не менее - чтобы сделать это, вам нужно запустить код или команду / задачу на сервере RemoteApp, чтобы убить задачу `rdpshell.exe`. Чтобы проверить, будет ли он работать, проще всего удаленно запустить диспетчер задач (нажмите Ctrl + Alt + End, как и прежде, затем выберите диспетчер задач в меню защищенного рабочего стола), найдите `rdpshell.exe` в списке процессов и завершите работу. Это. Это _should_ перезапустить автоматически, но если нет, вы можете вручную перезапустить из меню Файл. Он обновит ваши локальные окна при перезапуске. Daniel Keymer 7 лет назад 1
Только что понял, вы говорите о ДИСТАНЦИОННО защищенном рабочем столе. Когда я нажимаю Ctrl Alt End, даже когда в фокусе удаленное приложение, оно показывает мой локальный защищенный рабочий стол, а не удаленный. Любая идея, почему это будет? wysiwyg 7 лет назад 0
Вы используете вложенный сеанс (то есть полноэкранный RDP с компьютера A на компьютер B, на котором запущено RemoteApp на компьютер C)? Это единственный случай, когда я могу подумать о том, где -End (в отличие от -Del) не будет проходить через удаленный сеанс - или, по крайней мере, не _right_ удаленный сеанс. В этом случае запуск AHK на компьютере B, вероятно, является наименее болезненным способом сделать это, но мне также удалось заставить его работать, запустив osk.exe на этом среднем компьютере и введя комбинацию клавиш с этим. Но только для целей тестирования - вы не хотите использовать его каждый раз ... Daniel Keymer 7 лет назад 1
Вы абсолютно правы, я делал это с вложенной сессии; должен был понять это. Он работает нормально, когда я на машине А. Так что я думаю, что лучшим решением было бы иметь скрипт с горячей клавишей, просто отправив Ctrl-Alt-End, а затем Esc? Спасибо! wysiwyg 7 лет назад 0
Это самый простой обходной путь, наверняка; Используете ли вы сценарий, зависит от вашей ситуации, но похоже, что сценарии горячих клавиш вписываются в ваш рабочий процесс. Возможно, вам придется оставить небольшую задержку (может быть, полсекунды - но это зависит от того, насколько быстрым является сервер RemoteApp) между Ctrl + Alt + End и Esc, чтобы экран безопасного рабочего стола успел инициализировать и обработать ввод Esc , Удачи :) Daniel Keymer 7 лет назад 0