`

VB 动态调用 MessageBoxA 的源代码

    博客分类:
  • vb
VB 
阅读更多
'嘿,够简单吧!下面是动态调用MessageBoxA的源代码,上面的步骤被封装到RunDll32函数中,可放到模块(CallAPIbyName.bas)中:
Dim s1() As Byte
Dim
s2() As Byte
Dim
ret As Long
Dim
hProc As Long
Dim
hModule As Long
Sub
t2()
Const hWnd = 0
s1 = StrConv("Hello~World", vbFromUnicode)
s2 = StrConv(
"VBNote", vbFromUnicode)
ret = RunDll32(
"user32", "MessageBoxA", hWnd, VarPtr(s1(0)), VarPtr(s2(0)), 0 &)
End Sub
Public Function
RunDll32(LibFileName As String, ProcName As String, ParamArray Params()) As Long
ReDim
m_OpCode(400 + 6 * UBound(Params)) '保留用来写m_OpCode
'读取API库
hModule = LoadLibrary(ByVal LibFileName)
If hModule = 0 Then
MsgBox "Library读取失败!"
Exit Function
End If
'取得函数地址
hProc = GetProcAddress(hModule, ByVal ProcName)
If hProc = 0 Then
MsgBox "函数读取失败!", vbCritical
FreeLibrary hModule
Exit Function
End If
'执行Assembly Code部分
RunDll32 = CallWindowProc(GetCodeStart(hProc, Params), 0, 1, 2, 3)
FreeLibrary hModule
'释放空间
End Function

 

分享到:
评论

相关推荐

    winapi vb6 调用示例

    - 调用API函数:在代码中像调用普通VB函数一样调用API函数,传递相应参数。 3. **常见WinAPI函数示例** - `MessageBox`函数用于弹出消息框,如: ```vb MsgBox "Hello, WinAPI!", vbInformation, "VB6 & WinAPI...

    VB6.0 动态调用API函数实现相碰操作.rar

    在提供的压缩包文件`codesc.net`中,可能包含了示例代码或完整项目,展示了如何在VB6.0中动态调用上述API函数并实现相应的功能。通过学习和理解这些代码,你可以加深对VB6.0 API调用的理解,并将其应用到自己的项目...

    易语言API动态调用子程序源码

    例如,如果你想要调用`MessageBoxA` API来显示一个消息框,你可以这样编写代码: ```易语言 .DLL 使用 “user32.dll” . STDCALL 长整型, MessageBoxA, 文本型, 文本型, 长整型, 长整型 . STDCALL 长整型, 函数...

    置入代码实现调用MessageBoxA,多参带返回值

    本示例聚焦于如何通过置入代码调用`MessageBoxA`函数,这是一个能够显示带有按钮、标题和消息文本的消息框的API函数,同时它还能接收多个参数并返回用户的选择结果。 `MessageBoxA`函数是Windows API的一部分,定义...

    C#程序实现动态调用DLL

    ### C#程序实现动态调用DLL的关键知识点 #### 一、动态链接库(DLL)概述 **1. 动态链接库定义** - **概念**:动态链接库(Dynamic Link Library,简称DLL),是在Windows操作系统中最核心的技术之一。DLL是一种...

    易语言-置入代码实现调用MessageBoxA,多参带返回值

    本示例教程将详细讲解如何在易语言中使用置入代码调用Windows API函数`MessageBoxA`,同时传递多个参数并获取返回值。 `MessageBoxA`是Windows API中的一个函数,用于显示一个消息对话框,通常包含一个消息文本、一...

    置入代码实现调用MessageBoxA,多参带返回值-易语言

    调用动态链接库 ( "user32.dll", "MessageBoxA", "stdcall" ) .取动态链接库函数地址 ( ?hMessageBoxA, "MessageBoxA" ) .窗口句柄 = 0 // 指定窗口句柄,这里使用0表示无特定窗口 .消息文本 = "这是一个消息框测试...

    API_Function.rar_VB 高级_function vb_vb外部程序

    3. **调用API函数**:在VB代码中像调用普通函数一样调用API函数。 例如,调用Windows API中的`MessageBoxA`函数显示一个消息框,可以这样写: ```vb Private Declare Function MessageBoxA Lib "user32" (ByVal ...

    VB api函数大全

    3. **调用API函数**:在VB代码中像调用普通函数一样调用API函数。如: ```vb Dim result As Long result = MessageBox(0, "这是个测试消息", "API测试", vbInformation) ``` 这里的`0`代表当前活动窗口的句柄,`...

    易语言动态调用API源码.rar

    动态调用API是易语言中一个重要的技术,用于在运行时调用操作系统提供的函数,从而实现更丰富的功能。 API,全称为Application Programming Interface,是操作系统提供给开发者用以控制和交互系统的一种接口。在...

    C#中如何调用动态链接库DLL

    ### C#中调用动态链接库DLL的知识点详解 #### 一、动态链接库(DLL)简介 **动态链接库**(Dynamic Link Library,简称DLL)是Microsoft Windows系统中的一个重要组成部分,广泛应用于各种应用程序中。DLL文件本质...

    VB_API

    1. **声明API函数**:在VB代码中,使用`Declare`语句声明一个API函数,指定函数名、库名、返回类型以及参数类型。 2. **函数调用**:在适当的地方调用声明的API函数,并传递所需的参数。 3. **处理返回值**:根据API...

    C#调用动态链接库的几个方法

    在C#中调用动态链接库(DLL)是常见的操作,这通常用于利用非托管代码的功能,比如Windows API或其他第三方库。以下是一些方法来实现这一目标: 1. **DllImport 特性**: - `DllImport` 特性是C#中调用非托管DLL的...

    c#动态调用DLL.pdf

    总的来说,C#动态调用DLL是一种常见的跨语言交互手段,允许C#程序利用非托管代码的功能,比如Windows API或其他语言编写的库。通过静态导入和动态加载这两种方式,开发者可以根据项目需求灵活选择调用策略。

    VB爱好者乐园(VBGood) - API手册

    6. **调用约定**:VB中调用API函数需要正确的调用约定,如stdcall或stdcall。手册会指出每个函数的调用约定,确保函数参数的顺序正确。 7. **头文件和库引用**:在VB中使用API函数,需要引入相应的头文件(如kernel...

Global site tag (gtag.js) - Google Analytics