Обновить RDS Preview Title - PullRequest
       5

Обновить RDS Preview Title

0 голосов
/ 11 февраля 2019

Мы переходим от Citrix к RDS для некоторых наших приложений.Однако в начальных выпусках мы заметили, что заголовок окна панели задач (т. Е. Вы наводите указатель мыши или щелкаете значок на панели задач и получаете мозаичный предварительный просмотр с заголовками) не обновляется вместе с заголовком окна приложения.Вместо этого написано (RDBROKER.SITE.NET).Что еще хуже, это несколько противоречиво.

RDS_Title_Issue

Я изменил код из этого ответа и использую его во время загрузки формы:

Class NameChangeTracker
    Delegate Sub WinEventDelegate(ByVal hWinEventHook As IntPtr, ByVal eventType As UInteger, ByVal hwnd As IntPtr, ByVal idObject As Integer, ByVal idChild As Integer, ByVal dwEventThread As UInteger, ByVal dwmsEventTime As UInteger)
    <DllImport("user32.dll")>
    Private Shared Function SetWinEventHook(ByVal eventMin As UInteger, ByVal eventMax As UInteger, ByVal hmodWinEventProc As IntPtr, ByVal lpfnWinEventProc As WinEventDelegate, ByVal idProcess As UInteger, ByVal idThread As UInteger, ByVal dwFlags As UInteger) As IntPtr

    End Function
    <DllImport("user32.dll")>
    Private Shared Function UnhookWinEvent(ByVal hWinEventHook As IntPtr) As Boolean

    End Function
    Const EVENT_OBJECT_NAMECHANGE As UInteger = &H800C
    Const WINEVENT_OUTOFCONTEXT As UInteger = 0
    Shared procDelegate As WinEventDelegate = New WinEventDelegate(AddressOf WinEventProc)

    Public Shared Sub Main()
        Dim hhook As IntPtr = SetWinEventHook(EVENT_OBJECT_NAMECHANGE, EVENT_OBJECT_NAMECHANGE, IntPtr.Zero, procDelegate, 0, 0, WINEVENT_OUTOFCONTEXT)
        'MessageBox.Show("Tracking name changes on HWNDs, close message box to exit.")
        UnhookWinEvent(hhook)
    End Sub

    Private Shared Sub WinEventProc(ByVal hWinEventHook As IntPtr, ByVal eventType As UInteger, ByVal hwnd As IntPtr, ByVal idObject As Integer, ByVal idChild As Integer, ByVal dwEventThread As UInteger, ByVal dwmsEventTime As UInteger)
        If idObject <> 0 OrElse idChild <> 0 Then
            Return
        End If

        'Console.WriteLine("Text of hwnd changed {0:x8}", hwnd.ToInt32())
    End Sub
End Class

Этот код неверен?Есть ли что-то еще, что я должен сделать, чтобы заставить это работать?Я могу сделать это вручную с помощью ctrl+alt+end, чтобы принудительно обновить окна RDS, но мы не сможем заставить наших пользователей сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...