基于VB调用WindowsAPI函数编程技巧的

时间:2024-03-09 点赞:44445 浏览:86270 作者原创标记本站原创

本文是一篇操作系统论文范文,操作系统相关毕业论文开题报告范文,关于基于VB调用WindowsAPI函数编程技巧的相关硕士论文范文。适合操作系统及计算机及函数方面的的大学硕士和本科毕业论文以及操作系统相关开题报告范文和职称论文写作参考文献资料下载。

摘 要: API函数是操作系统和Windows应用程序的接口,能够直接控制和处理计算机的系统参数和硬件资源,实现许多高级功能.同时,API函数之多、功能之复杂让许多程序员望而生畏,因此,我们有必要掌握调用API函数的技巧.


关 键 词: API函数;VB;编程

中图法分类号:TP311.1文献标识码:A文章编号:1671-7597(2012)1020081-02

1 API函数概述

API(英文全称是:Application Programming Interface),

即应用程序编程接口.API函数是WINDOWS提供给应用程序与操作系统的接口,它位于WINDOWS操作系统核心之上、应用程序之下.Windows API根据操作系统的不同,可分为应用于16位操作系统的API(即Windows 16 API)和应用于32位操作系统API(即Windows 32 API).

2 API函数与软件编程技术

在WINDOWS操作系统占主导地位时期,开发WINDOWS平台下的应用程序成为人们的需要.在WINDOWS程序设计的初期阶段,WINDOWS程序员所能使用的编程工具只有API函数,程序开发也是比较复杂的工作,程序员必须熟记大量常用的API函数,而且还必须对WINDOWS操作系统有深入了解.随着软件技术的不断发展,在WINDOWS平台上出现了很多优秀的可视化编程环境,程序员可以采用“即见即所得”的编程方式来开发具有精美用户界面和功能强大的应用程序.这些优秀的可视化编程环境包括VB、VC++、DELPHI等都具有友好的界面、操作简单,而且提供了大量的代替了API功能的类库和控件.事实上,这些类库和控件都是构架在WIN32 API函数基础之上的、封装了的API函数的集合.它们把常用的API函数组合在一起成为一个控件或类库,并赋予其方便的使用方法,所以极大的加速了WINDOWS应用程序开发的过程.此时,程序员可以把主要精力放在程序整体功能的设计上,而不必过于关注技术细节.

实际上,如果我们要开发出灵活、实用、高效的应用程序,必然要涉及到直接使用API函数.虽然类库和控件使应用程序的开发简单得多,但它们只提供WINDOWS的一般功能,对于比较复杂和特殊的功能来说,使用类库和控件是非常难以实现的,这时就需要采用API函数来实现.这正是API函数使用的场合.

3 API函数在VB开发中的应用技巧实例

Visual Basic作为一个当前流行的快速编程环境,其无限扩展的API接口可以实现所有WINDOWS下可以实现的功能.但是,我们能用到的API函数有几千个,这些“浩瀚”的API函数对于初学者来说总是显得那么神奇与不可琢磨,在实际应用过程中不能够灵活.所以,我们对待API函数不必刻意研究每一个函数的用法,那也是不现实的,正如某位大虾所说——API不要去学,在需要的时候去查API帮助就足够了.

下面将结合“限制鼠标移动”的例子来示范介绍VB中调用API函数的步骤和功能,并总结说明在实际工作中如何提高这方面的技巧(本例采用VB6.0编译).

限制鼠标移动的实例:

在设计基于Windows的应用软件时,通常要将鼠标限制在控件内部,直到任务完成或用户中断为止.此功能若借助API函数来实现则思路清楚、代码简洁.那就是:1)确定当前鼠标的位置;2)确定当前活动控件的大小;3)将鼠标限制在活动控件内.具体操作为:

① 建立一个新项目:新窗体为Form1,在Form1上添加一个CommandButton,设置Name等于CMButton1;Caption等于"将鼠标限制在此按钮中".

② 拷贝API函数和POINTAPI结构:打开VB6.0自带的API浏览器,调入WIN32API.txt文件,复制以下结构和函数声明到Form1的声明部分:

Private Type RECT

Left As Long

Top As Long

Right As Long

Bottom As Long

End Type

Private Type POINTAPI

x As Long

y As Long

End Type

Private Declare Function ClientToScreen Lib "user32" (ByValhwnd As Long, lpPoint As POINTAPI) As Long

'用来确定当前鼠标的位置

Private Declare Function ClipCursor Lib "user32" (lpRect As Any) As Long

'用来限定当前鼠标的活动范围

③ 定义一个通用过程ConfineTo:

Public Sub ConfineTo(myCtl As Object)

On Error Resume Next

Dim tmpRect As RECT

Dim pt As POINTAPI

With myCtl

If TypeOf myCtl Is Screen Then '锁定在屏幕范围内

tmpRect.Left 等于 0

tmpRect.Top 等于 0

tmpRect.Right 等于 (.Width \Screen.TwipsPerPixelX)

tmpRect.Bottom 等于 (.Height \Screen.TwipsPerPixelY)ElseIf TypeOf myCtl Is Form Then '锁定在窗体范围内

tmpRect.Left 等于 (.Left \Screen.TwipsPerPixelX)

tmpRect.Top 等于 (.Top \Screen.TwipsPerPixelY)

tmpRect.Right等于(.Left+.Width)\Screen.TwipsPerPixelX

tmpRect.Bottom等于(.Top+.Height)\Screen.TwipsPerPixelY

Else

pt.x 等于 0

pt.y 等于 0

Call ClientToScreen(.hwnd, pt) '获取当前控件在屏幕上的位置

tmpRect.Left 等于 pt.x '保存当前控件位置

tmpRect.Top 等于 pt.y

pt.x 等于 .Width

pt.y 等于 .Height

Call ClientToScreen(.hwnd, pt)

tmpRect.Bottom 等于 pt.y

tmpRect.Right 等于 pt.x

End If

Call ClipCursor(tmpRect)

End With

End Sub

④ 在 CMButton1_Click()中加入以下代码

Static Cliped As Boolean '静态变量用来控制状态切换

If Not Cliped Then

ConfineTo CMButton1

Cliped 等于 True

Else

ConfineTo Screen '取消鼠标限制

Cliped 等于 True

End If

⑤ 运行后,鼠标点击CMButton1,此时鼠标只能被锁定在此按钮内部,再次点击按钮,限制取消.

4 VB调用API函数时的注意事项

Visual Basic作为一种高效编程环境,封装了部分Windows API函数,但也牺牲了一些API的功能,在调用API时如果稍有不慎就可能导致API编程错误——出现难于捕获或间歇性的错误,甚至出现程序崩溃.因此,要减少API编程错误,提高VB调用API时的安全性,应重点注意:

1)指定“OptionExplicit”.

编程前最好将VB编程环境中的“RequireVariableDeclar

Ation(要求变量申明)项选中.如果该项未被指定,任何简单的录入错误都可能会产生一个“Variant”变量,在调用API时,VB对该变量进行强制转换以避免冲突,这样一来,VB就会为字符串、长整数、整数、浮点数等各种类型传递NULL值,导致程序无法正常运行.

2)注意VB整数和Win32整数的区别.

3)减少和避免使用AsAny.

4)注意检查参数类型.

5)勿忘ByVal,确保函数声明的完整性.

6)重新检查函数名.

7)预先初始化字符串,以免造成冲突.

8)跟踪检查参数、返回类型和返回值.

5 结束语

VB因简单易学、界面友好而成为学习计算机编程的首先,几乎可以完成所有Windows应用程序的编写.然而由于VB自身的局限性,要想直接控制和处理计算机的系统参数和硬件资源,实现一些高级功能,就必须通过调用Windows API函数,以增强VB的编程功能,从而开发出高效、功能强大的应用程序.

相关论文

C语言学习过程中编程技巧的应用

此文是一篇语言论文范文,关于语言类论文例文,与C语言学习过程中编程技巧的应用相关毕业论文模板。适合不知如何写语言及学生及技巧方面的论。

PLC逻辑标志值法编程技巧

本文是一篇控制系统论文范文,控制系统类有关毕业论文的格式,关于PLC逻辑标志值法编程技巧相关本科毕业论文范文。适合控制系统及系统控制及。

数控车编程技巧探析

本文是一篇加工论文范文,加工类有关本科毕业论文,关于数控车编程技巧探析相关大学毕业论文范文。适合加工及机械加工及电子信息技术方面的的。

C语言编程技巧在C语言学习中的应用

本文是一篇计算机学习论文范文,关于计算机学习相关函授毕业论文,关于C语言编程技巧在C语言学习中的应用相关毕业论文提纲范文。适合计算机学。

Powerpoint中的高级编程技巧

本文是一篇计算机论文范文,计算机类有关专科毕业论文开题报告,关于Powerpoint中的高级编程技巧相关硕士论文范文。适合计算机及如何获取及参。

数控车削编程技巧

本文是一篇加工论文范文,加工类毕业论文题目,关于数控车削编程技巧相关毕业论文的格式范文。适合加工及刀具及零件方面的的大学硕士和本科毕。

流量计算在PLC中的编程技巧

本文是一篇流量论文范文,流量方面毕业论文题目,关于流量计算在PLC中的编程技巧相关毕业论文提纲范文。适合流量及参考文献及自动化控制方面。

数控编程技巧

本文是一篇指令论文范文,指令方面毕业论文提纲,关于数控编程技巧相关学士学位论文范文。适合指令及加工及参考文献方面的的大学硕士和本科毕。