剖析VB.NET资源文件使用案例
创始人
2024-06-10 00:50:56
0

资源是一种很宝贵的东西,在各种语言的开发中都尽可能的减少资源的浪费,在以前我做程序,版权使用协议信息总是放在一个txt文本文件中,打包时和可执行文件放在一起,在安装时释放到程序的安装路径,然后再打开使用。这种做法有两大坏处,一是这个文件很容易被其它人修改,二是可以套用蜡笔小新的一句话:"这种做法太不成熟了吧!"。现在我使用一个新的方法,就是将协议和可执行文件结合在一起,在程序运行时读出使用,当然这就全靠资源的作用了。VB.NET 资源文件步骤如下:

1、在VB.net中新建一个项目,类型选择windows应用程序,项目名称改为resourcesample2。

2、点击项目菜单,选择添加现有项,接着会弹出一个文件对话框,将文件类型改为所有文件后,选择要嵌入的txt文件(其实这时你可选择任意文件,只要你喜欢*-)。接着你会在解决方案资源管理器中发现你新加入的文件名。如图:

 浅析VisualBasic.NET中的资源使用

3、关键的一步到了,在解决方案资源管理器中点击你刚加入的文件名,然后在属性窗体中将 "加成操作" 这一属性改为"嵌入的资源",这将告诉net,刚加入的文件将会作为资源链接进可执行文件中。留意一下文件名哦,这在后面的程序中也很重要,强烈建议使用小写文件名!如下图:

 浅析VisualBasic.NET中的资源使用

4、接下就是在程序中用代码读出这个文件的内容。

在Form1_Click事件中加入代码,如下所示:

  1. Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Click  
  2. Dim tobjStream As IO.Stream = Me.GetType.Assembly.GetManifestResourceStream("resourcesample2.License.txt")  
  3. Dim tobjStreamReader As New IO.StreamReader(tobjStream, System.Text.Encoding.Default)  
  4. Dim tstrLicense As String = tobjStreamReader.ReadToEnd  
  5. '如果是图象就可以使用dim tobjBMP as new bitmap(tobjstrem)的方法直接得到资源内容  
  6. MessageBox.Show(tstrLicense)'显示刚才读得的结果  
  7. End Sub  

在此对上述代码进行一点解释,net是通过Assembly的GetManifestResourceStream读出嵌入在可执行文件的资源并以IO.Stream对象返回(反正得到了这个流,就好象你时进行文件流操作,读/写到磁盘或象我一样在程序内部处理都由你自己决定了)。这个方法的***参数是资源的***标识,是按如下方式组成的:程序集的根命名空间+"."+资源在属性窗口显示的文件名(这是区分大小写的,在上文已提醒你注意了哦,而且这个标识法在C#中是不同的,别问我为什么,谁叫你不和我一样使用VB.net,哼8-)。

程序集的根命空间的名你可以从项目菜单下的XXXX(XXXX是你的项目名称,可不要认为是骂人的话8-)属性中看到:

浅析VisualBasic.NET中的资源使用

其余的代码就是以流方式读VB.NET 资源文件,很简单吧。

5、按生成菜单下的生成解决方案,然后到你可执文件的目录下看看,你会发现除了可执行文件外没有别的文本文件,因为文本文件已以资源的方式存在于可执行文件中啦。运行一下看看效果啊(一些想做黑客的菜鸟又有什么怪怪的想法,藏木马?……)通过上面的讲述大家对VB.NET 资源文件有深入的了解了吧。

【编辑推荐】

  1. 剖析VB.NET CASE语句
  2. VB实例教程之教你如何制作多媒体程序
  3. 全面概括VB格式输出函数Format的使用
  4. 程序员必看VB.NET CASE语句拓展篇
  5. 深入介绍VB.NET类库 SmartRWLocker技巧

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...