2017-02-18 6 views
1

В настоящее время я работаю над эмуляцией терминала с использованием SSH.NET. Создание SshClient и ShellStream с текущими столбцами/строками работают правильно.Renci SSH NET: отражать ширину/высоту при изменении размера терминала

Но когда я изменяю размер размеров терминала (например, Putty), я не могу найти способ отправки новых колонок/строк на сервер.

Единственный способ, который я вижу, - закрыть оболочку и создать новый. Есть ли лучший способ отправить новый «макет» на сервер?

Заранее спасибо :-)

ответ

0

После дней расследования я оказался в реализации нового метода в ShellStream.cs:

/// <summary> 
    /// Sends a "window-change" request. 
    /// </summary> 
    /// <param name="columns">The terminal width in columns.</param> 
    /// <param name="rows">The terminal width in rows.</param> 
    /// <param name="width">The terminal height in pixels.</param> 
    /// <param name="height">The terminal height in pixels.</param> 
    public void SendWindowChangeRequest(uint columns, uint rows, uint width, uint height) 
    { 
     if (_channel == null) 
     { 
      throw new ObjectDisposedException("ShellStream"); 
     } 
     _channel.SendWindowChangeRequest(columns, rows, width, height); 
    } 

Это решило проблему. Теперь я могу позвонить «SendWindowChangeRequest (...)», и окно оболочки на стороне сервера обновлено :-)

Не уверен, почему эта функция отсутствует в реализации Renci. Возможно, есть еще один способ ...

 Смежные вопросы

  • Нет связанных вопросов^_^