RemoteTextConnection Класс

Определение

Представляет соединение между клиентским приложением удаленного рабочего стола и системой текстового ввода локального компьютера. Это подключение можно использовать для включения виртуализации ввода текста.

public ref class RemoteTextConnection sealed : IClosable
/// [Windows.Foundation.Metadata.Activatable(Windows.System.RemoteDesktop.Input.IRemoteTextConnectionFactory, 851968, "Windows.Foundation.UniversalApiContract")]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 851968)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class RemoteTextConnection final : IClosable
/// [Windows.Foundation.Metadata.Activatable(Windows.System.RemoteDesktop.Input.IRemoteTextConnectionFactory, 851968, "Windows.Foundation.UniversalApiContract")]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 851968)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(Windows.System.RemoteDesktop.Input.IRemoteTextConnectionFactory2, 1048576, "Windows.Foundation.UniversalApiContract")]
class RemoteTextConnection final : IClosable
[Windows.Foundation.Metadata.Activatable(typeof(Windows.System.RemoteDesktop.Input.IRemoteTextConnectionFactory), 851968, "Windows.Foundation.UniversalApiContract")]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 851968)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class RemoteTextConnection : System.IDisposable
[Windows.Foundation.Metadata.Activatable(typeof(Windows.System.RemoteDesktop.Input.IRemoteTextConnectionFactory), 851968, "Windows.Foundation.UniversalApiContract")]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 851968)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(typeof(Windows.System.RemoteDesktop.Input.IRemoteTextConnectionFactory2), 1048576, "Windows.Foundation.UniversalApiContract")]
public sealed class RemoteTextConnection : System.IDisposable
function RemoteTextConnection(connectionId, pduForwarder)
function RemoteTextConnection(connectionId, pduForwarder, options)
Public NotInheritable Class RemoteTextConnection
Implements IDisposable
Наследование
Object Platform::Object IInspectable RemoteTextConnection
Атрибуты
Реализации

Требования к Windows

Семейство устройств
Windows 11 (появилось в 10.0.22000.0)
API contract
Windows.Foundation.UniversalApiContract (появилось в v14.0)

Комментарии

Функция RemoteTextConnection предназначена для виртуализации ввода текста с помощью удаленных приложений, интегрированных с локальным рабочим столом. Этот сценарий называется удаленными программами или удаленными приложениями, интегрированными локально (RAIL). Использование RemoteTextConnection с полным удаленным взаимодействием на рабочем столе в настоящее время не рекомендуется и может привести к нежелательному поведению. Если включена виртуализация ввода текста, для ввода текста в удаленных приложениях можно использовать встроенные методы ввода, предоставляемые Windows (включая IMи).

Чтобы включить виртуализацию ввода текста, клиентское приложение удаленного рабочего стола создает один объект RemoteTextConnection для каждого удаленного сеанса, к которому оно подключается. Пакеты данных доставляются через этот объект в систему текстового ввода локального компьютера и из нее следующими способами:

  • Система ввода текста отправляет пакеты данных в клиентское приложение удаленного рабочего стола через делегат RemoteTextConnectionDataHandler . Клиентское приложение удаленного рабочего стола отвечает за создание этого делегата и его передачу в конструктор RemoteTextConnection . Пакеты данных из системы текстового ввода будут соответствовать протоколу виртуализации текстового ввода RDP. Сообщения, полученные от этого делегата, будут поступать в фоновом потоке. Когда клиентское приложение получает пакеты данных от делегата, оно должно пересылать пакеты на удаленный сервер RAIL через однонаправленный динамический виртуальный канал (DVC) для виртуализированного текстового ввода. Этот DVC называется TextInput_ClientToServerDVC.

  • Клиентскому приложению удаленного рабочего стола также необходимо прослушивать пакеты данных с удаленного компьютера на DVC-сервере для ввода текста (с именем TextInput_ServerToClientDVC) и пересылать эти пакеты данных в систему текстового ввода локального компьютера с помощью метода ReportDataReceived . Дополнительные сведения о том, как клиентские приложения удаленного рабочего стола поддерживают DVC, см. в разделах Динамический виртуальный канал (DVC) и файл заголовка tsvirtualchannels.h.

Единственными локальными методами ввода, которые RemoteTextConnection будет интегрировать с удаленными приложениями, являются встроенные методы ввода, предоставляемые Windows, которые используют следующую версию платформы служб текста (включая МЕ). Эти методы ввода размещаются системой ввода текста в централизованном процессе, что делает интеграцию возможной. Более старые текстовые службы Framework версии 1 или IMM IMEs не размещаются в централизованном процессе и не поддерживаются виртуализацией ввода текста. Эти старые методы ввода должны быть установлены непосредственно в удаленной системе для работы с приложениями, удаленными из этой системы. Таким же образом используются методы ввода Text Services Framework версии 1 и IMM, если виртуализация ввода текста не используется.

Конструкторы

RemoteTextConnection(Guid, RemoteTextConnectionDataHandler)

Создает новый экземпляр класса RemoteTextConnection, относясь к одному удаленному сеансу.

RemoteTextConnection(Guid, RemoteTextConnectionDataHandler, RemoteTextConnectionOptions)

Представляет соединение между клиентским приложением удаленного рабочего стола и системой текстового ввода локального компьютера. Это подключение можно использовать для включения виртуализации ввода текста.

Свойства

IsEnabled

Указывает, включена ли виртуализация ввода текста для подключения к удаленному рабочему столу, обслуживаемого этим экземпляром RemoteTextConnection .

Методы

Close()

Закрывает объект RemoteTextConnection .

Dispose()

Выполняет определяемые приложением задачи, связанные с удалением, высвобождением или сбросом неуправляемых ресурсов.

RegisterThread(UInt32)

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

ReportDataReceived(Byte[])

Пересылает пакет данных, полученный по динамическому TextInput_ServerToClientDVCвиртуальному каналу (DVC), в службу текстового ввода локального компьютера.

ReportPredictedKeyEvent(UInt16, RemoteKeyEventAttributes)

Представляет соединение между клиентским приложением удаленного рабочего стола и системой текстового ввода локального компьютера. Это подключение можно использовать для включения виртуализации ввода текста.

UnregisterThread(UInt32)

Отменяет регистрацию потока, зарегистрированного с помощью RegisterThread , при очистке или в том случае, если в этом потоке больше не будет размещаться удаленный пользовательский интерфейс.

Применяется к

См. также раздел