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

FeF*_*eFe 2 vb6 dll

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

先感谢您

Bob*_*b77 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
Run Code Online (Sandbox Code Playgroud)

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