类库大魔王
类库大魔王 懒惰,傲慢,以及无耐心

TabPuTTY

之前很长一段时间都是用ConEmu来实现Tab化的PuTTY,后来由于发现PuTTY的屏幕刷新不如SecureCRT的快,最近用了一段时间的SecureCRT,不过又发现SecureCRT有两个很让我受不了的问题:

  • 如果屏幕输出内容又多又快时,整个程序会卡住
  • 如果一段时间不操作,常常会掉线,我没找到选项让它一直在线

所以我又想起PuTTY的好来。PuTTY对我来说最大的问题就是没有原生支持Tab多页面操作。倒是有很多第三方的工具可以把PuTTY窗口管理起来,就像ConEmu那样,不过仍然感觉不是很舒服。偶然发现了putty-nd,这哥们把PuTTY的代码改了合进去,从Chrome处抠了些代码实现Tab页面,倒是很符合我的要求了。之前用了一下发现使用proxy连接时,会crash。这点很要命,因为我从外面连接公司内网都是走http proxy的。于是下载代码来看看自己能不能改好,单步跟了一下很容易发现有个地方指针没赋值。之后又发现这哥们提供的工程文件只能用debug building,貌似这哥们提供的编译好的可执行文件他也是用debug build的,再用upx压缩了一下传网上的,只好再尝试改一下工程设置,其实很也简单,把各种配置包括各种路径,UNICODE/多字节编码,预定义宏,runtime链接库等等从debug variant复制粘贴到release variant就行了,当然有些小修改,比如DEBUG,_DEBUG之类的宏要换成NDEBUG等等,然后就可以编译出release的来了。结果编译出来静态链接了runtime库后,exe文件有2MB多,用UPX压缩一下也仍然有1MB左右。编译好的可执行文件点击这里下载。

这个小东西还有不少可以优化的地方,比如:

  • 合并最新的官方PuTTY源代码
  • 合并一些第三方的,没被官方接受的patch。前几天在网上瞎逛,发现各种PuTTY的fork,各种patch,最疯狂的是一个日本人的对render的patch,有GDI和Direct2D/DirectWrite两个版本。
  • 断开连接时可以自动关闭tab
  • 配置功能重构
  • 右键上下文菜单

等等等等。先放着吧。

感觉本文不错,不妨小额鼓励我一下!
支付宝扫一扫

支付宝扫一扫

微信扫一扫

微信扫一扫

如果你看不到评论框,说明Disqus被墙了。