首页 考试吧论坛 Exam8视线 考试商城 网络课程 模拟考试 考友录 实用文档 求职招聘 论文下载
2011中考 | 2011高考 | 2012考研 | 考研培训 | 在职研 | 自学考试 | 成人高考 | 法律硕士 | MBA考试
MPA考试 | 中科院
四六级 | 职称英语 | 商务英语 | 公共英语 | 托福 | 雅思 | 专四专八 | 口译笔译 | 博思 | GRE GMAT
新概念英语 | 成人英语三级 | 申硕英语 | 攻硕英语 | 职称日语 | 日语学习 | 法语 | 德语 | 韩语
计算机等级考试 | 软件水平考试 | 职称计算机 | 微软认证 | 思科认证 | Oracle认证 | Linux认证
华为认证 | Java认证
公务员 | 报关员 | 银行从业资格 | 证券从业资格 | 期货从业资格 | 司法考试 | 法律顾问 | 导游资格
报检员 | 教师资格 | 社会工作者 | 外销员 | 国际商务师 | 跟单员 | 单证员 | 物流师 | 价格鉴证师
人力资源 | 管理咨询师考试 | 秘书资格 | 心理咨询师考试 | 出版专业资格 | 广告师职业水平
驾驶员 | 网络编辑
卫生资格 | 执业医师 | 执业药师 | 执业护士
会计从业资格考试会计证) | 经济师 | 会计职称 | 注册会计师 | 审计师 | 注册税务师
注册资产评估师 | 高级会计师 | ACCA | 统计师 | 精算师 | 理财规划师 | 国际内审师
一级建造师 | 二级建造师 | 造价工程师 | 造价员 | 咨询工程师 | 监理工程师 | 安全工程师
质量工程师 | 物业管理师 | 招标师 | 结构工程师 | 建筑师 | 房地产估价师 | 土地估价师 | 岩土师
设备监理师 | 房地产经纪人 | 投资项目管理师 | 土地登记代理人 | 环境影响评价师 | 环保工程师
城市规划师 | 公路监理师 | 公路造价师 | 安全评价师 | 电气工程师 | 注册测绘师 | 注册计量师
缤纷校园 | 实用文档 | 英语学习 | 作文大全 | 求职招聘 | 论文下载 | 访谈 | 游戏
您现在的位置: 考试吧(Exam8.com) > 计算机等级考试 > 计算机二级 > VB > 复习资料 > 正文

2011年计算机等考二级VB辅导知识技巧总结(7)

来源:考试吧Exam8.com) 2010-12-13 11:45:44 考试吧:中国教育培训第一门户 模拟考场
考试吧整理了2011年计算机等考二级VB辅导知识技巧总结,帮助考生梳理知识点。

  嘿,够简单吧!下面是动态调用MessageBoxA的源代码,上面的步骤被封装到RunDll32函数中,可放到模块(CallAPIbyName.bas)中:

  Dim s1() As Byte, s2() As Byte

  Dim ret As Long

  s1 = StrConv("Hello~World", vbFromUnicode)

  s2 = StrConv("VBNote", vbFromUnicode)

  ret = RunDll32("user32", "MessageBoxA", hwnd, VarPtr(s1(0)), VarPtr(s2(0)), 0&)

  CallAPIbyName.bas中的源代码:

  Option Explicit

  Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long

  Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long

  Private Declare Function CallWindowProc Lib "User32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

  Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long

  Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (lpDest As Any, lpSource As Any, ByVal cBytes As Long)

  Public m_opIndex As Long ′写入位置

  Private m_OpCode() As Byte ′Assembly 的OPCODE

  Public Function RunDll32(LibFileName As String, ProcName As String, ParamArray Params()) As Long

  Dim hProc As Long

  Dim hModule 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

  Private Function GetCodeStart(ByVal lngProc As Long, ByVal arrParams As Variant) As Long

上一页  1 2 3 4 下一页
  相关推荐:

  2010年9月计算机等级考试成绩查询时间汇总

  2011计算机等级考试二级VB考点及习题汇总

  2011年计算机等级考试二级VB基础教程汇总

  2011计算机等考二级VB辅导知识技巧汇总

文章搜索
版权声明:如果计算机等级考试网所转载内容不慎侵犯了您的权益,请与我们联系800@exam8.com,我们将会及时处理。如转载本计算机等级考试网内容,请注明出处。