2017-02-18 116 views
1

我目前正在使用SSH.NET进行终端仿真。使用当前的列/行创建SshClient和ShellStream可正常工作。Renci SSH NET:在调整终端大小时反映宽度/高度

但是,当我改变终端尺寸(如腻子)的大小,我找不到一种方式发送新的列/行到服务器。

我看到的唯一方法是关闭shellstream并创建一个新的。有没有更好的方式将新的“布局”发送到服务器?

在此先感谢:-)

回答

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(...)”并且服务器端shell窗口是最新的:-)

不确定,为什么Renci的实现中缺少此功能。也许还有另一种方式...

相关问题