问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

res文件咋用

发布网友 发布时间:2022-04-30 21:24

我来回答

3个回答

热心网友 时间:2023-10-14 03:09

VB资源文件的多种使用技巧2009-06-18 10:13一、 开发中英(简、繁)双版本
现在比较流行的软件都会有中文版、英文版、繁体版等等多个版本,并可以根据系统的语言自动显示相适应的版本,那么这个功能在 VB 是如何实现得呢的:
1、 首先通过 API 函数GetSystemDefaultLCID 判断系统的语言
Option Explicit
Dim lang As String
Private Declare Function GetSystemDefaultLCID Lib "kernel32" () As Long
Private Sub Form_Load()
Dim LocaleID As Long
LocaleID = GetSystemDefaultLCID
Select Case LocaleID
Case &H404
MsgBox "当前系统为:中文繁体", , "语言"
Case &H804
MsgBox "当前系统为:中文简体", , "语言"
lang = "1"
Case &H409
MsgBox "当前系统为:英文", , "语言"
lang = "2"
End Select
End Sub
2、然后程序就可以加载保存在资源文件(这里我们就是使用的这种方法)、注册表、INI 文件、文本文件或其他文件中的各类字符串,以达到达到实现多种语言的目的。
⑴启动 VB6.0,在“外接程序→外接程序管理器”中加载“Visual Basic 6 资源编辑器”
⑵在 VB 资源编辑器窗口中,点击“编辑字符串表格”输入如下资料:
标识号 中文(中国)
101 例子
102 中文
103 英文
201 Ensample
202 Chinese
203 English
⑶保存资源文件,写如下代码:(自定义装载字符的函数 LoadString)
Sub LoadString()
Me.Caption = LoadResString(Int(lang & "01"))
Command1(0).Caption = LoadResString(Int(lang & "02"))
Command1(1).Caption = LoadResString(Int(lang & "03"))
End Sub
⑷怎么样一个简单的中英双版本的程序就做出来了,如果把 lang 的值设置为 1,则显示中文,如果把 lang 的值设置为 2,则显示英文。
二、 实现“绿色”软件
现在非常流行“绿色”软件,不需要什么安装程序只要一个 EXE 文件就可以运行程序
了,而在 VB 的编程中有许多地方需要调用第三方的控件(很难用 API 函数搞定所有的功能),这就需要制做一个安装程序,把所需要的控件、DLL 文件或其他文件打包进去了,那么在 VB 中怎么用变通的方法实现“绿色”软件呢,请看:
示例:
1、主程序.EXE
用 VB6.0 编写的程序,调用了 Winsock 控件,如果在没有安装 VB5.0、6.0 的机器上运行则会出现错误,导致程序运行失败,这时如果按一般的方法,只有把这个程序用 VB5.0、6.0 的安装程序进行打包,不然只有用用2的方法来解决了。
2、注册程序.EXE
用 VB6.0 编写的程序,使用资源文件的方法,把 Winsock 控件封装到本程序中,在运行主程序.EXE之前,先运行本程序,通过 API 函数 GetSystemDirectory 取得系统的 Winddows\System 的目录,然后把 Winsock 控件复制到该目录下,并用 Shell 来完成控件的注册。
⑴启动 VB6.0,在“外接程序→外接程序管理器”中加载“Visual Basic 6 资源编辑器”
⑵在 VB 资源编辑器窗口中,点击“添加自定义资料”,增加 Winsock 控件(C:\Winddows\System\nsck.ocx),再双击刚刚创建的自定义资源,弹出”编辑属性”窗口,定义如下:
类型: “OCX”
标识号: 101
语言: 中文(中国)
⑶保存资源文件,写如下代码:
Option Explicit
Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Const MAX_PATH = 260 注释:定义足够长的字符串
Private Sub Form_Load()
Dim TempFile() As Byte
Dim FileNum As Integer
Dim TempDir As String
TempDir = GetWinSysDir 注释:自定义函数取得系统的 Winddows\System 的目录
TempFile = LoadResData(101, "OCX") 注释:用以从资源 (.res) 文件装载若干可能类型的数据,并返回一个 Byte 数组
FileNum = FreeFile
Open TempDir & "\nsck.ocx" For Binary Access Write As #FileNum 注释:新建文件(把 Winsock 控件复制到指定目录下)
Put #FileNum, , TempFile
Close #FileNum

注释:Shell "regsvr32 " & TempDir & "\nsck.ocx ", vbNormalFocus 注释:注册控件,有弹出对话框
Shell "regsvr32 " & TempDir & "\nsck.ocx /s", vbNormalFocus 注释:注册控件,无弹出对话框

MsgBox "注册成功,现在本程序可正常运行了!!", vbOKOnly, "注册控件"

Unload Me
End Sub

Public Function GetWinSysDir() 注释:定义读取Winddows\System 的所在目录的函数
Dim S As String, Length As Long
S = String(MAX_PATH, 0) 注释:赋值
Length = GetSystemDirectory(S, MAX_PATH) 注释:S为取得目录,MAX_PATH 为长度
S = Left(S, InStr(S, Chr(0)) - 1) 注释:去掉多余的空格
GetWinSysDir = S
End Function
注释:补充:S 和 MAX_PATH 的值是可以随便赋的,
注释:如: Dim S As String * 20
注释: Length = GetSystemDirectory(S, 20)
3、补充说明
在用 VB6.0 保存上述两个程序后,请再使用 VB5.0 重新打开这两个程序,并编译为主程序.EXE、注册文件.EXE。(用 VB5.0 编译的程序,在 Win98、2000 下不需要任何 DLL 文件)
程序运行
4、程序运行
将主程序.EXE、注册文件.EXE两个文件,复制到任意机器上,先运行注册文件.EXE注册第三方的控件,再运行主程序.EXE,就不会有任何的错误了,一个变通的“绿色”软件就完成了。
三、 直接播放EXE文件中的声音文件
使用资源文件,可以直接在在EXE文件中播放声音文件(WAV文件),使程序显得更加专业。
⑴启动 VB6.0,在“外接程序→外接程序管理器”中加载“Visual Basic 6 资源编辑器”
⑵在 VB 资源编辑器窗口中,点击“添加自定义资料”,增加任意的 WAV 文件,再双击刚刚创建的自定义资源,弹出”编辑属性”窗口,定义如下:
类型: "WAVE"
标识号: 102
语言: 中文(中国)
⑶保存资源文件,写如下代码:
Option Explicit
Private Declare Function GetSystemDefaultLCID Lib "kernel32" () As Long
Private Declare Function sndPlaySoundFromMemory Lib "winmm.dll" Alias "sndPlaySoundA" (lpszSoundName As Any, ByVal uFlags As Long) As Long
Public Const SND_ASYNC = &H1&
Public Const SND_MEMORY = &H4&
Private Sub Command5_Click() 注释:播放 WAV 文件
Dim bArr() As Byte
bArr = LoadResData(102, "WAVE")
sndPlaySoundFromMemory bArr(0), SND_ASYNC Or SND_MEMORY
End Sub
⑷按 F5 运行本程序,点击 Command 按钮,就可以听到你选定的 WAV 文件的声音了。
四、 直接调用各类图标、光标图片
在一个程序中,我们可能需要调用多个图标、光标、图片文件,一般来说我们主要是使用 ImageList 控件,不过其时使用资源文件是最好的方法(可以少使用一个控件呀)。
⑴启动 VB6.0,在“外接程序→外接程序管理器”中加载“Visual Basic 6 资源编辑器”
⑵在 VB 资源编辑器窗口中,点击“添加光标”,“添加图标”,“添加位图”,装载所需要的文件。
⑶程序代码如下:
Me.Icon = LoadResPicture(101, vbResIcon) 注释:加载图标
Picture1.Picture = LoadResPicture(101, vbResBitmap) 注释:加载位图
Command1.MouseIcon = LoadResPicture(101, vbResCursor) 注释:加载光标
五、到此为此资源文件的多种使用技巧全部介绍完毕,希望这些技巧对大家的编程有帮助,上述程序全部在 Win98、VB5.0或6.0下运行通过

---------------------------------------------------

对“如何制作和利用资源文件”的补充

“一、 开发中英(简、繁)双版本”的方法可以使用,更简单实用的方法:

把不同语言文字放在同一个标识号ID对应的不同字符串表格中即可.
VB 会自动实现多种语言转换!

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/mini_pray/archive/2006/11/16/1388753.aspx

热心网友 时间:2023-10-14 03:10

http://zhidao.baidu.com/question/94413196.html

VB 资源文件详解

参考资料:http://zhidao.baidu.com/question/94413196.html

热心网友 时间:2023-10-14 03:10

http://ke.baidu.com/view/283059.htm
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
路由器网线一米多少钱 东芝电视怎么投屏安卓手机 东芝电视怎么投屏 东芝电视投屏功能在哪里 指甲根部半月白 ...在指甲中部黑线长起 还有就是月牙上有白色一块 都在同一个指_百度... 我农业银行五年定期无密码存款,身份证没了,仅凭身份证复印件和存款单... 混凝土强度回弹怎么测算推定值,是否满足要求?一篇文章讲明白_百度知 ... 发动机舱有胶皮味跟安装防盗器有关系吗 cb400f启动后有股胶皮味道 一个袋子装了半袋米,倒出三分之一多1千克后还剩19千克... RES0RT H0TEL什么意思 我按路由器的Resrt键后上不了网,我的路由器设置页面点WAN一个按钮也没有,宽带连接也连不上,怎么办啊? 青花瓷画两只羊是什么寓意 Res数学中是什么符号,什么意思 resit是什么意思 用青花图案做的班徽,有什么对于学习品德的寓意? research是什么意思 如何获取物化视图的ddl 微信里面怎么设置红包来了提示音 微信提示音红包来了怎么设置 我登录我的中国银行手机银行,怎么关联我的公务消费信用卡 郑大远程教育怎么改登录密码 中国银行公务卡积分如何兑礼品 夏天脚底起水泡的原因是什么 郑州大学西亚斯国际学院教务在线如何查询期末成绩 中国银行公务卡如何开通网银 郑州大学工学院2009年第一学期成绩怎么查? 脚底下疯狂起泡怎么回事?持续三年了 郑州大学什么时候放暑假 郑州大学教务在线怎么不能查分啊 RES是什么意思啊! 就像kilomrtres,metres这类的长度单位能数吗 有赏!!!知道的进来请教下,"SU""SD""MRS""OL""STF""RES""ITF""STR""FU"都是些什么符号?具体是什么意思 物竞天择怎么玩 山葡萄酒的好处有哪些? 微信登录老是卡在正在载入数据中是怎么回事? 自制葡萄酒最好用山葡萄吗? 论坛一直“正在加载数据”怎么解决? 山葡萄加冰糖做出来的酒能喝吗 属羊的男孩取名叫熊浩怎么样 三星手机登陆微信,一直显示“正在载入数据”,是什么原因? 作山葡萄酒有什么危害? 为什么我的微信群打开就显示正在载入数据?? 做销售报表时,里面的趋势图怎么弄? 微信不能登录,正在载入数据99% 没有人可以推荐一款山葡萄酿造的红酒? 怎样用山葡萄做葡萄酒? 微信群聊点进去就是正在载入数据什么情况 先卸载后 又重新下载了微信 几个小时了都一直“正在载入数据”怎么办啊? 电脑一开机就显示正在加载数据 ,好多英文,这是怎么回事?