7,763
社区成员
发帖
与我相关
我的任务
分享
'---------------------------------------------------------------------------------------
' 模块 : 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