Total Pageviews

Sunday, 18 December 2016

TabPuTTY

我又想起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
  • 配置功能重构
  • 右键上下文菜单
等等等等。先放着吧.