做了个图形界面磁盘镜像扩容小工具,代替命令行避免误操作

作者:V君 发布于:2021-2-9 13:51 Tuesday 分类:我的应用

TL;DR [ 下载 ][ 源代码 ]

点击查看原图

效果:对指定的文件增加长度
限制:尚不明确
环境:基于 .NET 2.0 生成,在 XP 之后的系统应该不需要安装额外的组件
用法:
 1. 将要扩容的文件拖入 File 框或者点击 Select 按钮选择文件
 2. 输入大小,选择单位
 3. 查看预览大小是否符合预期,点击 Go 按钮。
 F. 若操作成功,工具会自动退出避免二次误操作。

稍微扯扯:

最近发现 iSCSI 用的游戏盘镜像空间不够了,而且 iSCSI 服务端没有实现(引出)扩容功能。其实给裸盘镜像(raw disk image)扩容只需要增加文件长度,然后再用磁盘管理器调整分区(扩展卷)以用完容量,这就吼了,但手头并没有好用的工具,那就自己撸了。

做出来用爽了之后还没有发表博客文章,而是先让网友们看看。有网友说可以用 fsutil 这个命令行工具来改变文件大小,而如果错误地输入了一个比原来小的值,那文件就会丢失数据,这有点危险。

因此对于像我害怕打错命令行参数丢数据的,来个防止误操作的图形界面还是可以有 乂目

标签: 软件开发 C# Winform 磁盘 磁盘扩容

评论(0) 引用(0) 浏览(48)

通过WebSocket隧道,尝试将ASP.NET网站空间当作VPS来使用

作者:V君 发布于:2021-1-17 11:50 Sunday 分类:折腾手记

先上 PoC源代码 再开始扯,这次不是着重解决某个问题,而是尝试确定某种可能性。

以前使用过 C9.io 提供的免费在线开发环境来搞各种事情,包括正常上网,无非是利用 Web Sockets 建立隧道,然后配合客户端连接到在上面运行各种应用程序。
现在C9已经被收购且停止免费了,那就公开来说吧w

这次也不例外,只不过花了点钱搞了个支持 ASP.NET 4.5+ 的网站空间,然后在上面搞类似的事情。

基础设施 -- WebSocket 转 TCP 模块

首先要使用 WebSocket 来建立一条隧道,要求网站空间支持且启用 WebSocket,不然没法整。这里有个未经优化,但还能凑合着用的例子,只要挂在 HttpModule 中 HttpApplication 的 PostMapRequestHandler 事件,填好参数就能吃。

折腾1 -- SSH 终端

略去寻找绿色 SSH 服务端的辛酸过程,时间直接转到发现 FxSsh 这个纯托管实现的服务端。这里要分成两个部分来扯,分别是使用基于 ConPTY 的 MiniTerm 和兼容低版本 Windows 的简单兼容实现。由于 FxSsh 主要实现的是 SSH 协议通道,服务端的终端并没有适配,尽管源代码中带了个名为 MiniTerm 的 DEMO 来适配到较新系统的 ConPTY。

第一部分:基于 MiniTerm 的实现。原版的 MiniTerm 虽然导入了 ResizePseudoConsole 这个 API 但并没有使用。而且由于 NuGet 上的 FxSsh 不是最新版,没有窗口大小变更事件的支持。 因此我把他们全都拷贝到自己的项目中并注明来源了。在此之上再加以修改 MiniTerm 使窗口大小变更事件适配到 MiniTerm 的实现。目前并没有发现太多问题。有点小遗憾的是 MiniTerm 使用的 ConPTY 功能是 Windows 10 近些年的更新才引入的,因此许多网站空间的系统都不支持,会报「在 kernel32 中找不到 CreatePseudoConsole 入口」的错误,因此我准备了另一个方案,见接下来的第二部分。

第二部分:另行实现一个兼容低版本 Windows 的控制台进程适配。在项目中起名为 EasyTerminal。起初简单将控制台进程的标准输入输出还有错误输出重定向到 SSH 通道,然鹅,回车键不起作用,而且不回显。将回车键拦截下来,改成 StandardInput.WriteLine 调用,总算是能满足最基本的需求。尽管还是没有实时回显,得按下回车键之后才显示出来,功能按键和窗口大小什么的更无从说起。目前仍在使用零碎的时间持续摸索(咕XD)…

折腾2 -- 正常上网 将网站空间当作 V2 服务端使用

编译部署这个项目,然后将 V2 的两个 exe 和配置文件丢进 App_Data 目录,然后使用 WS 隧道连接到监听的 URL,最后在 V2 客户端指向 WS 隧道客户端,这时候就能吃了。分配了较大的缓冲区大小,这应该能有效减少损耗,如果网速慢,你需要测一下空间到你的网速。

不水。

标签: 软件开发 个人服务器 C# HTTP Web技术 传输协议 Windows .NET IIS WebSocket

评论(0) 引用(0) 浏览(36)

【水】快要跨年了,为来年做点祈祷

作者:V君 发布于:2020-12-26 21:45 Saturday 分类:心情

希望来年没有 _ _ ,也希望早日不用做太过分的自我言论审查。

希望中文互联网的信息污染早日得到控制。

这个月到现在为止还没有值得发表的有趣内容,不刷一下存在感又很慌,那就以跨年祈祷的名义水一下吧。。。

评论(0) 引用(0) 浏览(65)

【弃疗】2.5G双口PCI-E独立网卡导致断电?

作者:V君 发布于:2020-11-21 21:26 Saturday 分类:折腾手记

TL;DR
品牌:GRIS
型号:PCI-E RTL8125 双口
症状:导致电脑断电,如同长按主机电源按钮
规律:双口同时为2.5G时,1到5秒内断电
使用情况:单2.5G速率使用两个多月,双2.5G速率使用不到一个月
缓解方法:在网卡高级设置中暂时将其中一个口的速率设置到1Gbps

听我扯扯:

自从上一篇文章以来,其实这张双口网卡还没有以双口都的2.5G速率运行太久,要么第二台无盘机不开,要么只连接了千兆的机器。

最近凑了一台主板集成了2.5G的机器,就把他接到双口网卡上了。之后不久这台机开始出现无规律的断电现象,起初频度较低,猜可能是供电不稳定。直到今天出现可重现的开机后断电的现象,那就不得不想办法了。

这台主机里面挂着不少东西,起初以为是电源老化,就换了个相同型号的电源,然而症状依旧。经过不断排查,终于将范围缩小到这张网卡上。 把这张网卡插到另一台机器也能复现相同的症状。

已经联系卖家,但现在是周末,得等到星期一才能获得技术支持。看他们怎么处理吧。

换了个一摸一样的也能重现同样故障,不知道是这型号有毛病还是兼容问题了,全都退掉了!

标签: 硬件故障

评论(0) 引用(0) 浏览(96)

做了个节奏光剑实时状态挂件

作者:V君 发布于:2020-10-28 22:38 Wednesday 分类:折腾手记

点击查看原图

TL;DR [ 源代码 ] [ 本体 ]


效果:在游戏画面前叠加一层,用于显示分数、歌曲、性能信息和图表
安装:使用 ModAssistant 安装 HTTPStatus 和 YUR 后将 dll 丢进 Plugins 目录然后运行exe
  若找插件管理器找不到 YUR,去官方 discord 找
  HTTPStatus 插件可以去 GitHub 找 release 若是没有 release 就自己编译吧!
配置:无需任何配置
扯扯:

看到一些视频有些叠加在前面的挂件,后来了解到原来是通过HTTP方式向外部提供来实现的。现有的实现大部分都是基于网页,然后用OBS之类的录屏软件做叠加处理。

我一直用 GeFore Experience 来录屏,懒得改用 OBS。那就自己撸一个吧,反正半透明的窗体也不难搞,于是这玩意儿就出来了。早期只有 HTTPStatus 的数据,后来想到可以把 YUR 的心率和燃烧率整合进来,又做了个插件去读YUR的数据(插件的插件……)。再后来,想知道为啥帧数很低,就把 OpenHardwareMonitor 集成进来读取 CPU 和 GPU 负载了(发现是 CPU 拖了后腿…),它自带有 sys 文件会释放到 exe 旁边,如果杀毒软件拦截,你就要做出选择是相信 OpenHardwareMonitor 还是相信你的杀毒软件了,我不背锅。

最后就是解释为啥这么迟才发表文章了。还不是因为游戏更新,而且YUR插件也没出来,就一直拖着一直到昨天去 YUR 的 discord 问了才知道,原来插件已经出来,但是还没有通过 BeatMods 的审核…(我想说我做的音量插件也一直处于 Pending 状态,别人家晚来的插件都通过了。。

标签: 软件开发 插件 C# Winform Unity VR游戏

评论(0) 引用(0) 浏览(141)

Powered by emlog 去你妹的备案 sitemap