tightvnc server 原版改造、精简

改造一:去掉 httpServer

tightvnc server 自带了一个httpServer,用于提供web访问。但是查看端需要安装java插件,然而我们并不需要该部分功能,精简掉它,可以适当降低程序资源占用和可执行文件大小。

 

 

准备环境:

VS2015 编译原版 tightvnc 2.8.27 源码

 

修改CPP文件:tightvnc-2.8.23-gpl\tvnserver-app\TvnServer.cpp

行67,注释掉:m_httpServer(0),

 

 

行132,注释掉:restartHttpServer();
行143,注释掉:stopHttpServer();

 

行198-行210,全部注释掉;

 

行323-行339,注释掉整个函数:void TvnServer::restartHttpServer()

 

行389-行402,注释掉整个函数:void TvnServer::stopHttpServer()

 

 

修改头文件:tightvnc-2.8.23-gpl\tvnserver-app\TvnServer.h

行38,注释掉:#include "http-server-lib/HttpServer.h"

 

行145,注释掉:void restartHttpServer();
行149,注释掉:void stopHttpServer();
行191,注释掉:HttpServer *m_httpServer;

 

编译结果验收

精简后,通过 Release Win32 编译,tightvnc server 体积由 1.43MB 缩小为 1.08MB,缩小了大概三分之一的大小,实际测试对现有功能无任何影响。

如下图所示:

 

改造二:去掉控制进程

tightvnc server 无论是使用服务模式启动还是普通进程模式启动,都会自动启动一个控制进程,服务模式运行参数为controlservice,进程模式运行参数则为controlapp,该控制进程用于创建托盘图标,提供配置界面等功能。

 

 

由于我们的tightvnc server实际使用时已自动化配置了各项参数值,不需要通过界面去配置任何参数,故不需要该进程。

修改方法:

修改tvnserver-app中的源文件:TvnServerApplication.cpp,

行88,注释掉:m_tvnControlRunner = new WsConfigRunner(&m_fileLogger); 

行92,注释掉:delete m_tvnControlRunner;

如下图所示:

 

 

修改后编译运行,不论是否有用户连接,始终只会存在一个进程。如下图所示:

应用程序模式:

 

服务模式:

 

posted @ 2020-09-13 09:16  Bluefish’s_blog  阅读(3491)  评论(1编辑  收藏  举报