有没有办法得到Shell32.dll里的字符串资源啊?

mdcire 2012-04-27 01:57:16
有没有办法得到Shell32.dll里的字符串资源啊?
如:
ID String Text
60 Version %d.%d (Build %d%s)%s
在下不怎么懂VB,有大侠能给出脚本吗?急,在线等!!
...全文
209 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
bcrun 2012-04-29
  • 打赏
  • 举报
回复
搞定,楼主快给分哦:)


'---------------------------------------------------------------------------------------
' 模块 : modAPI.bas
' 时间 : 2012-4-29 22:02
' 作者 : 杨过.网狐.cn
' 功能 :
' 备注 : 封装支持Unicode的API
'---------------------------------------------------------------------------------------

Option Explicit

Private Declare Function GetModuleHandleW Lib "kernel32" (ByVal lpModuleName&) As Long
Private Declare Function LoadStringW Lib "user32" (ByVal hInstance&, ByVal uID&, ByVal lpBuffer&, ByVal nBufferMax&) As Long


Public Function GetModuleHandle(ByVal lpModuleName As String) As Long

Dim lResult As Long


GetModuleHandle = GetModuleHandleW(StrPtr(lpModuleName))

End Function
Public Function LoadString(ByVal hInstance&, ByVal uID&, ByRef lpBuffer As String, ByVal nBufferMax&) As Long


LoadString = LoadStringW(hInstance&, uID, StrPtr(lpBuffer), nBufferMax&)

End Function

'---------------------------------------------------------------------------------------
' 模块 : Form1
' 时间 : 2012-4-29 22:03
' 作者 : 杨过.网狐.cn
' 功能 :
' 备注 :
'---------------------------------------------------------------------------------------

Option Explicit
Private Sub Form_Load()
Dim hInstance1 As Long, sText As String, nBufferMax&
Dim MyStr As String, lpModuleName As String

nBufferMax& = 1024
'Create a buffer
MyStr = String(nBufferMax&, Chr$(0))
lpModuleName = "C:\WINDOWS\system32\SHELL32.dll"
hInstance1 = GetModuleHandle(lpModuleName)
If (LoadString(hInstance1, 60, MyStr, nBufferMax&) > 0) Then
'strip the rest of buffer
MyStr = Left$(MyStr, InStr(MyStr, Chr$(0)) - 1)
Debug.Print MyStr
End If

End Sub


bcrun 2012-04-29
  • 打赏
  • 举报
回复
应该是用LoadString这个API吧

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧