我正在从VB6制作.dll。我需要知道将使用该.dll的应用程序的路径,但我无法弄清楚如何直接从.dll 执行此操作 ..任何人都知道如何做到这一点?
提前谢谢
答案 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
调用适当的方法获取主程序的基本名称或完整文件名。