如何判斷程式是獨立執行還是在 VB 環境底下執行?
此時可呼叫 GetModuleFileName API 函數判斷執行檔名稱是否為 VB5, 如果是 VB5, 則 GetModuleFileName 最右邊的 7 個字元將等於 "VB5.EXE", 以下筆者將判斷的方法寫成一函數, 如下:
Function IsRunUnderVB5() As Boolean
Dim S As String, Length
Length = 256
S = String(Length, 0)
Call GetModuleFileName(0, S, Length)
S = Left(S, InStr(S, Chr(0)) - 1)
IsRunUnderVB5 = UCase(Right(S, 7)) = "VB5.EXE"
End Function
請注意如果是其他版本, 則 VB 執行檔名稱並不相同, 須更改以上程式中的 "VB5.EXE"。GetModuleFileName 函數呼叫時所需宣告之 API 如下:
Private Declare Function GetModuleFileName Lib "kernel32" Alias
"GetModuleFileNameA" (ByVal hModule As Long, ByVal lpFileName As String, ByVal
nSize As Long) As Long
註:如果以上的宣告放在「一般模組」底下, 應在 Const 之前加上 Public 保留字, 並且將 Private 保留字去掉。