明晨网络

电话: 136-6532-7492 QQ: 给我发送消息 8507-0741

VB代码:获取实例的完整镜像路径

admin,2009-06-12 18:41, 文章标签: VB 实例路径

    VB中使用APP.PATH来获取实例路径,使用下面这段代码可以更多的功能。如果在DLL中使用,当dll被调用时,将返回DLL的路径。明晨网络原创,如果您有更好的实现方法请联系Mingchennet.com。
    可以获取1.完整镜像路径,如 x:\project\app.exe或者x:\project\app.dll ,2.文件名 app.exe或者app.dll,3.所在目录,比如x:\project\ 。注意获取的目录以斜杠 “\” 结尾。
   

代码如下
  1. '========================================
  2. '声明作用:获取模块名称
  3. '========================================
  4. Private Declare Function GetModuleFileName Lib "kernel32" Alias "GetModuleFileNameA" (ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long
  5.    
  6. Public Enum ModNameType
  7.     FullName = 0
  8.     ShortName = 1
  9.     DirName = 2
  10. End Enum
  11.  
  12.  
  13. '========================================
  14. '函数名称:FullAppName
  15. '函数作用:获取模块全路径名称
  16. '========================================
  17. Function FullAppName(lType As ModNameType) As String
  18.     Dim modName As String * 256
  19.     Dim i As Long
  20.     Dim j As Long
  21.     i = GetModuleFileName(App.hInstance, modName, Len(modName))
  22.     FullAppName = Left$(modName, i)
  23.     j = Len(FullAppName)
  24.    
  25.     '去除空字符
  26.    Do While Mid(FullAppName, j, 1) = vbNullChar
  27.         j = j - 1
  28.     Loop
  29.     FullAppName = Trim(Left(FullAppName, j))
  30.    
  31.     '自身完整路径
  32.    If lType = 0 Then
  33.         FullAppName = FullAppName
  34.         '自身短文件名
  35.    ElseIf lType = 1 Then
  36.         FullAppName = Mid(FullAppName, InStrRev(FullAppName, "") + 1)
  37.     Else
  38.         '自身所在目录
  39.        FullAppName = Mid(FullAppName, 1, InStrRev(FullAppName, ""))
  40.     End If
  41.    
  42. End Function

文章源自:明晨网络,admin,《VB代码:获取实例的完整镜像路径》,http://www.mingchennet.com/tec/code/vb/25.htm