标签: DotNet

捣鼓了一个程序压缩合并混淆小软件【附下载】

NetZ-GUI        最近项目里面需要这样的需求,即将项目里过多的库合并,让客户端看起来瘦一点,于是在网上找了不少资料,最初是看到ILMerge软件,它是由微软内部员工开发,能将使用.Net开发的程序合并在一起,但它有个缺点是对COM组件处理不大友好,程序若引用了COM组件,而这些COM组件若使用了其它COM组件,需要一并合并才会成功,否则程序无法运行。而且程序引用的库需要全部添加才能生成成功,可以说使用起来不是很理想。

后来又找到一款合并软件,NetZ,开源项目。它比ILMerge多个功能,就是能混淆和压缩代码,而且它的限制比较少,你想压缩哪些库就压缩哪些库,不会出现失败信息。对COM组件支持得也比较理想,至少我用AxInterop.WMPLib和Interop.WMPLib均可成功合并,但System.Data.SQLite和刷卡模块等失败,尚未找出可行方案(有找到的也可以跟我联系)。为了方便起见,就在此软件的基础上做了一个可视化压缩工具(NetZ是命令行式,没有界面),软件环境是.net framework2.0及以上,NetZ目前支持最高3.5版本的压缩混淆合并(后续若出现更高版本,可自行更新软件目录下的NetZ文件夹内容)。

阅读详细 »

总结一下这些年在事业上走过的路

      从上大学实习,到广州正式就业,再到转站南京,咱算是基本上没有进过比较大的软件企业,当然也就没多少机会接受很正规的软件培训或者教育。有句话说得好,上帝在关上一扇门时,同时也会打开另一扇门。中小企业有中小企业的好处,就是咱能接触到软件开发的每个流程,大部分功能业务块开发。我也就是在这样的磨练中,慢慢成长起来的。

      先是要感谢一下给我走入DotNet世界的张经理(私下里称张哥),没有他我估计也不会从事DotNet开发,估计也不会有今天的成就(咱最初就是跟张哥学Java,后来马上要入门了,却让我们转DotNet,当初是多么地不愿意啊,后来感觉DotNet也蛮好玩的)。后来张哥又经常安排部门内部培训,教我们设计模式等技术,还安排我去研究前沿技术(我也就是在研究前沿技术时感悟到了许多东西,也就是在那时对开发控件感兴趣,做了第一个控件:分页控件,这为我以后的控件专门开发和系统架构打下了基础)。

阅读详细 »

在Winform中播放视频等【DotNet,C#】

      在项目中遇到过这样的问题,就是如何在Winform中播放视频。当时考察了几种方式,第一种是直接使用Windows Media Player组件,这种最简单;第二种是利用DirectX直接在窗体或者控件上绘图,这种比较复杂。于是采用的是第一种方法。

      先从VS的工具箱里添加Windows Media Player组件,方式是打开工具箱,在最下面的空白处点击右键,选择项,然后在弹出的对话框里切换到Com组件标签项,找到“Windows Media Player”项并选中,确定后将在工具箱中看到多出一个图标,然后就可以将这个图标拖到窗体上进行设置了。

      在这里主要讲下,设置Windows Media Player组件时,有个属性是“无窗口播放”,如果不启用的话,在视频播放时点击鼠标的话,视频会切换到全屏状态,启用就不会发生。但启用的话,视频的清晰度会下降很多(颗粒感变得很明显),不启用鼠标点击又会放大。最初我采用定时将全屏属性改为False来实现,时钟设置成100毫秒或者更小,表现出来的就是用户双击视频后,屏蔽忽地一下变大然后又恢复原样,更危险的是此操作有一定机率(而且不低)会将XP的任务栏暴露出来(因为我们的终端是要全屏显示,不能让用户看到桌面及其它操作项的),于是我反复测试,最终采用的另外一种方式,即过滤窗体事件来直接屏蔽掉视频区域的鼠标消息。具体实现如下:

阅读详细 »