VB6 .dll可以调用应用程序路径

时间:2014-07-05 23:30:06

标签: dll vb6

我正在从VB6制作.dll。我需要知道将使用该.dll的应用程序的路径,但我无法弄清楚如何直接从.dll 执行此操作 ..任何人都知道如何做到这一点?

提前谢谢

1 个答案:

答案 0 :(得分:6)

这似乎是一个DLL:

Option Explicit

Private Const API_NULL As Long = 0

Private Declare Function GetCurrentProcess Lib "kernel32" () As Long

Private Declare Function GetModuleHandle Lib "kernel32" _
    Alias "GetModuleHandleA" ( _
    ByVal lpModuleName As Long) As Long

Private Declare Function GetModuleBaseName Lib "psapi" _
    Alias "GetModuleBaseNameA" ( _
    ByVal hProcess As Long, _
    ByVal hModule As Long, _
    ByVal BaseName As String, _
    ByVal nSize As Long) As Long

Private Declare Function GetModuleFileNameEx Lib "psapi" _
    Alias "GetModuleFileNameExA" ( _
    ByVal hProcess As Long, _
    ByVal hModule As Long, _
    ByVal FileName As String, _
    ByVal nSize As Long) As Long

Public Function ExeBaseName() As String
    Dim Size As Long

    ExeBaseName = Space$(256)
    Size = GetModuleBaseName(GetCurrentProcess(), _
                             GetModuleHandle(API_NULL), _
                             ExeBaseName, _
                             256)
    ExeBaseName = Left$(ExeBaseName, Size)
End Function

Public Function ExeFileName() As String
    Dim Size As Long

    ExeFileName = Space$(256)
    Size = GetModuleFileNameEx(GetCurrentProcess(), _
                               GetModuleHandle(API_NULL), _
                               ExeFileName, _
                               256)
    ExeFileName = Left$(ExeFileName, Size)
End Function

调用适当的方法获取主程序的基本名称或完整文件名。