vb6 调用 64位应用程序

Option Explicit

Private Declare Function LoadLibrary Lib "kernel32.dll" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
Private Declare Function FreeLibrary Lib "kernel32.dll" (ByVal hLibModule As Long) As Long
Private Declare Function GetProcAddress Lib "kernel32.dll" (ByVal hModule As Long, ByVal lpProcName As String) As Long

Private Declare Function Wow64DisableWow64FsRedirection Lib "Kernel32" (ByRef oldvalue As Long) As Boolean
Private Declare Function Wow64RevertWow64FsRedirection Lib "Kernel32" (ByVal oldvalue As Long) As Boolean

Private Function IsSupport(ByVal strDLL As String, strFunctionName As String) As Boolean
    Dim hMod As Long, lPA As Long
    hMod = LoadLibrary(strDLL)
    If hMod Then
        lPA = GetProcAddress(hMod, strFunctionName)
        FreeLibrary hMod
        If lPA Then
            IsSupport = True
        End If
    End If
End Function

Private Sub Form_Load()
    If IsSupport("Kernel32", "Wow64DisableWow64FsRedirection") And IsSupport("Kernel32", "Wow64RevertWow64FsRedirection") Then
    Else
        Exit Sub
    End If
    Dim fsRedirect As Long
    fsRedirect = Wow64DisableWow64FsRedirection(fsRedirect)
    If fsRedirect Then
        Shell "c:\windows\system32\SnippingTool.exe", vbNormalFocus
        Wow64RevertWow64FsRedirection fsRedirect
    End If
End Sub

以上代码在 win8.1 x64 下调试通过