无缝循环播放 - 蛋疼小工具

作者:V君 发布于:2016-4-25 18:26 Monday 分类:我的应用

TL;DR
[ 本体 ][ 源代码 ]
效果:对指定的音频文件做无缝循环播放.
用法:一个可选参数, 用来指定音频文件. 可以无参数打开然后拖进去.
限制:目前只支持WAV(PCM)格式.
环境:需要.NET 2.0, win7以上可以直接使用. XP需要安装.NET 2.0才能用


扯一句:

 只是为了在挖坑时循环播放某游戏的BGM,

 一直在用的播放器循环有缝隙, 不爽就自己现炒个轮子.

标签: 音乐 软件开发 C# 多媒体 无缝循环播放

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

ISO镜像文件替换工具 - 自制小工具

作者:V君 发布于:2016-4-25 6:59 Monday 分类:我的应用

TL;DR
[ 本体 ][ 源代码 ]
效果:替换ISO镜像内的文件.
用法:三个必选参数, 分别是ISO镜像, 镜像内路径, 用于替换内容的文件.
注意:用于替换的文件长度必须小于或等于镜像内文件长度.
限制:目前只实现了ISO9660的支持,典型的解释是可以用在PS3镜像,却不能用在Win7安装镜像.
环境:需要.net4, win8以上可以直接使用. win7需要安装.net4.5才能用

扯扯:

由于玩ODE PS3需要重签EBOOT/SELF, 下下来的东西部分会是原盘镜像而不是打散的目录.
然而ODE的奇怪机制, 个头大的游戏直接用打散的目录会死机...
难道这是要先解开然后替换再重新创建镜像? 傻了, 都是以10G做单位的.
咕狗过没有ISO镜像编辑工具, 至少没有 on-the-fly 这样的.
根据经验, 重签之后的文件会比原盘小, 因为重签过程显示 compress 嘛.
好吧, 看来又要造轮子了.
先做可行性分析, 用WINHEX定位到文件内容偏移, 手动修改再用别的软件读被修改的文件.
内容预期, 没有出错, 证实可行.
然后接着啃ISO镜像格式标准文档/查阅别人写好的代码经过无数坑,总算是弄懂格式长啥样.
然后自个从头到尾写了个实现, 最后打算做界面时偷懒了.
 -- 你个打字的拖什么控件, 给我老老实实用命令行!

最后给看不懂TLDR的人一个示例:
IsoImage.exe z:\ps3.iso PS3_GAME\USRDIR\EBOOT.BIN Z:\453\EBOOT.BIN
这样就能把重签好的EBOOT塞回镜像里面了

标签: 软件开发 C# PS3 ISO9660

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

RawCap抓包工具也不是万能的

作者:V君 发布于:2016-4-5 11:09 Tuesday 分类:挖坑经验

TL;DR: 官方网站已经明确, 在XP之后的Windows上有以下限制, 看来只能用作回环抓包了.

Raw sockets limitations (OS dependent)

(略过两项)

External interfaces

Microsoft's newer operating systems (later than WinXP) have limitations associated with raw socket sniffing of external interfaces, i.e. everything that isn't localhost. Known limitations in Windows Vista and Win7 are:

  • Windows 7 - Can't capture incoming packets
  • Windows Vista - Can't capture outgoing packets

Due to these limitations in the raw sockets implementations of Microsoft's current operating systems we suggest running RawCap on Windows XP if you need to capture from external interfaces.


不扯不快:

说到抓包, 大家可能第一个想到的就是WireShark. 

然而这货想抓回环包要稍稍蛋疼的配置一下才能抓, 并且略庞大.

配置页面就提到可以用RawCap轻松抓取.

 

这次环境是2003, 想抓某个服务应用程序的包做故障诊断. 

WireShark提示系统版本太低不支持, 然而老版本安装包似乎不工作...

用RawCap在上面跑, 抓完打包回传, 发现只有接收的包, 没有发送的包.

然后回来看看官网, 果然是有限制的.


看来还是要老老实实修改现有程序加上收发数据日志.

我讨厌维护陈旧的各种编码不规范且自作聪明的项目

不能因为他们那时候因对基础类库不熟悉就原谅

标签: 软件故障诊断 抓包

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

TCPView未能完全统计网络活动-难道Sysinternals的工具不靠谱?

作者:V君 发布于:2016-4-1 21:26 Friday 分类:挖坑经验

因为Sysinternals工具套装一直给我在软件故障诊断这类问题上带来优越的体验, 

我对它的信任也逐步提升甚至达到脑残粉级别.


最近, 我用其中的TCPView诊断服务器运行情况时

发现只显示连接发起, 没有显示这个连接的发送/接收的数据包或字节.

 

于是坚信咱们的服务程序有问题, 只是连接到对方而已, 并没有吐出数据.

 

由于这是很复杂的老项目, 出问题也一下子不知道是什么地方, 

只好放一边, 联系以前负责这个项目的人, 预约个时间来一起排查.

 

动摇: 等人来的这段时间中一次偶然的在自己的本子上跑起TCPView, 

发现只有系统进程才有收发数据统计,

别的绝大多数应用进程和在服务器遇到的情况一样 -- 有连接,但显示空的收发数据包和字节数.

唯独cFosSpeed的进程是有活动的, 可能是把别的进程流量集中到一起来调整优先级.

 

结果: 约到之前负责项目的人来一起解决问题, 他在另一端启动一个Socket调试工具.

启动监听 -- 发现确实有数据过来.


好吧, 我知错了. 可能复杂的服务器环境有类似cFos一样的东西来管理流量.


并不是说TCPView不靠谱, 而是显示的是系统层面真实的连接活动情况.

只不过这些连接活动可能受到个别软件影响.导致显示出的结果和实际有差别.

遇到这个问题的人不只是我, Sysinternals官方论坛也有人提到这个现象.


标签: 软件故障诊断 TCP Sysinternals 抓包

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

[update2]批量文件重命名/垂直编辑/数字对齐 - 自制小工具

作者:V君 发布于:2016-3-13 2:17 Sunday 分类:我的应用

TL;DR

[ 本体 ][ 源代码 ]

效果:批量修改文件名;

用法:

1)双击打开, 把要处理的单个文件夹拖进窗口

2)按住alt键在需要对齐的地方拖下来,按需要进行删除/补齐或批量更改,剪切粘贴.

 注意:垂直选中文字块剪切后,需要在贴上的地方拖一个长光标才能跨行粘贴. update:可以直接用左右箭头来移动长光标.

3)点击工具栏Go!执行, 这时候可以点Reset来进行下一轮处理;

环境:需要.net4, win8以上可以直接使用. win7需要安装.net4.5才能用

点击查看原图


隐藏秘籍:

alt+鼠标拖放 块状选择
●alt+shift+方向键━开始/改变块状选择
●块状选择时 左右箭头左右移动选择块
●块状选择时 ctrl+左右箭头增减选择块宽度
●块状选择时 shift+左右箭头左右移动选中内容
▲块状选择时不要按ctrl+别的键(包括ctrl+Z)



[~闲话时间~]

这就是前段时间的文章提到的做法, 终于把自动化做出来了.

虽然用了NootePad++的文本编辑器组件,但是这货自己并不带纵向编辑.

在自己实现纵向编辑上花了好大功夫.

看来NPP也不仅仅是个包着文本编辑器组件的壳(笑)


不要吐槽源码为啥这么手打.

自从出来工作之后大部分是Web, 习惯手打界面布局.

作为一个牛逼的软件开发人员, 应该对使用设计器感到羞愧(笑)

整天从早到晚打字,设计器什么的经一去不复返喽!!


update:

上一个版本是关闭窗口时提示要不要执行, 现在改成工具栏了

本想在标题栏加按钮, 但是发现很难实现, 玻璃效果和经典主题的处理方式还不同...


update2:

修正包含全角数字文件名时拖入失效的BUG

标签: 软件开发 C# 字符串处理 Winform 小工具 纯文本 纵向编辑 批命令

评论(2) 引用(0) 浏览(431)

Powered by emlog 去你妹的备案 sitemap