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 下调试通过

posted on   空明流光  阅读(1831)  评论(0编辑  收藏  举报

编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示