v2rayN-HY2 新增 添加Hy2服务器窗口 在 .net 4.8 工程中复制已有的窗口
Hy2服务端的一键脚本已经有了(v2ray v4 json 和 Hy2 都有了), 但是我用惯了的 v2rayN-3.29 并不支持, 于是就动手添加一下.
首先当然是要新增一个 添加Hy2服务器 的窗口.
从github下载源文件
解压 .zip 文件
用 Visual Studio 打开 .sln 工程文件.
我看了一圈, 目前已有的 添加Shadowsocks服务器 的窗口 里的信息比较适合 Hy2服务器, 我准备复制一个窗口出来, 省得自己在窗口上加组件, 也省得写一些重复性的代码.
找到 AddShadowSocksServerForm.cs, 右键, 复制
所以找到父目录, 也就是Forms, 右键, 粘贴
修改文件名为 AddHy2ServerForm.cs
(我觉得VS这一点还需要加强. 本身.net有一些框架. 像这样的重命名应该将框架相关的变量都同步重命名. 这应该算是一个"重构"功能.)
我们在 新窗口的文件内容中搜索旧窗口的名称. 也就是在 AddHy2ServerForm.cs 相关的文件中搜索 "AddShadowSocksServerForm" 文字.
.cs 文件右键, 查看代码
菜单中找到 在文件中查找 功能 (也可以用快捷键 Ctrl+Shift+F)
填写搜索关键字
不要 勾全字匹配
查找范围选择 所有打开的文档
点击 查找全部
不出意外的话, 应该全部找到的部分都要替换.
那为什么一开始不使用 在文件中替换 功能呢? 我还是想在修改之前先确认一下啦~
编译, 启动一下.
正常编译通过, 正常启动.
项目中有了这个窗口, 但还没有功能入口来显示这个窗口.
接下来, 我们在添加一个菜单项, 来显示这个窗口.
在 MainForm.cs 查看设计器
这之后的分析过程和代码没有通用性. 我就详细不写具体过程了. 整体来说就是照猫画虎, 参考已有的代码流程, 在必要的地方添加新的属性Hy2啊, 分支代码逻辑啊, ...
代码量很少, 不过分布在不同的文件中.
代码量很少, 不过分布在不同的文件中.
需要说明的是, 这是 v2rayN 项目的特殊性. 如果你是在一个普遍的 .net 4.8 项目中, 也许只要在菜单项的点击事件中, 简单的写一两句就够了.
测试一下, 发现显示的窗口标题还是Shadowsocks
编辑窗口属性的操作是很基本的知识, 很容易在 Google 和 GPT 中获取, 我就不详细写了.
这里需要注意的是, v2rayN 是一个多语言项目.
还需要编辑 .zh-Hans.resx 中相应的文本.
要实现完整的Hy2功能支持, 还需要其它处理, 我们下回分解.
========
开了一个分支, 本文的修改内容已提交.
如果你有兴趣, 可以看到整个的开发过程.
评论
发表评论