求助VB制作ocx控件,在控件里,怎么取得调用ocx的程序路径或程序名
时间:2011-08-09
来源:互联网
求助VB高手,制作ocx控件中,怎么取得调用ocx的程序路径或程序名。
在控件里试用MsgBox App.Path这个路径只是得到当前控件文件在系统的路径。
在控件里试用MsgBox App.Path这个路径只是得到当前控件文件在系统的路径。
作者: wapasp 发布时间: 2011-08-09
控件注册后,直接添加引用就OK.
作者: cnuser1 发布时间: 2011-08-09
网上抄来的。
Private Declare Function GetClassLong Lib "user32" Alias "GetClassLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function GetModuleFileName Lib "kernel32" Alias "GetModuleFileNameA" (ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long
Public Function AppName(Optional hWnd As Long) As String
If hWnd <> 0 Then
AppName = GetModulePathName(hWnd)
Else
AppName = GetModulePathName
End If
End Function
Private Function GetModulePathName(Optional hWnd As Long) As String
Dim nResult As String
Dim nLenResult As Long
Const GCL_HMODULE = (-16)
nResult = Space(260)
nLenResult = Len(nResult)
nLenResult = GetModuleFileName(GetClassLong(hWnd, GCL_HMODULE), nResult, nLenResult)
GetModulePathName = Left$(nResult, nLenResult)
End Function
Private Function IsUserControlExecuted(ByVal hWnd As Long) As Boolean
Dim nFileName As String
nFileName = Right$(GetModulePathName(hWnd), 12)
If CBool(nFileName Like "MSVBVM?0.DLL") Or CBool(Mid$(nFileName, 2) = "VB40032.DLL") Then
IsUserControlExecuted = True
End If
End Function
Private Declare Function GetClassLong Lib "user32" Alias "GetClassLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function GetModuleFileName Lib "kernel32" Alias "GetModuleFileNameA" (ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long
Public Function AppName(Optional hWnd As Long) As String
If hWnd <> 0 Then
AppName = GetModulePathName(hWnd)
Else
AppName = GetModulePathName
End If
End Function
Private Function GetModulePathName(Optional hWnd As Long) As String
Dim nResult As String
Dim nLenResult As Long
Const GCL_HMODULE = (-16)
nResult = Space(260)
nLenResult = Len(nResult)
nLenResult = GetModuleFileName(GetClassLong(hWnd, GCL_HMODULE), nResult, nLenResult)
GetModulePathName = Left$(nResult, nLenResult)
End Function
Private Function IsUserControlExecuted(ByVal hWnd As Long) As Boolean
Dim nFileName As String
nFileName = Right$(GetModulePathName(hWnd), 12)
If CBool(nFileName Like "MSVBVM?0.DLL") Or CBool(Mid$(nFileName, 2) = "VB40032.DLL") Then
IsUserControlExecuted = True
End If
End Function
作者: patrickkong 发布时间: 2011-08-09
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28