说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

VB怎样用VB在应用程序中调用API

HTML文档下载 WORD文档下载 PDF文档下载
VB怎样用VB在应用程序中调用API
作者:小锋
由于 API 过程存在于 Visual Basic 应用程序之外的文件中,在使用时必须指定过程的位置和调用参数。可以用 Declare 语句提供这类信息。在声明了 API 过程之后,可以把它当做 Visual Basic 自己的过程使用。 
  如果在 Visual Basic 中直接调用 API,那么 Visual Basic 环境下固有的安全机制将受到不利影响。这意味着在测试和调试程序时可能会遇到更多的系统故障。为了减少这种危险,在声明 API 过程、传递参数和指定类型的时候务必要小心。无论在什么情况下,一定要经常保存已经完成的工作。API 可以提供不同凡响的功能,但是要用好它也不容易。
  下例将演示如何调用 Windows API 中的过程。调用函数 SetWindowText 来改变一个窗体的标题栏。当然,在实际应用中,通常总是利用 Visual Basic 的 Caption 属性来改变标题栏。该示例的目的在于说明如何声明并调用过程。
声明 API 过程
  首先,在模块的声明部分对过程进行声明:
  Private Declare Function SetWindowText Lib "user32" _
  Alias "SetWindowTextA" (ByVal hwnd As Long, _
  ByVal lpString As String) As Long
  过程的精确语法定义可以用 API Viewer 应用程序找到,在 Win32api.txt 文件中也可以找到它。如果将 Declare 放在 Form 或者 Class 模块内,那么必须在它的前面加上 Private 关键字。同一个 API 过程在一个工程中只需声明一次;然后可以任意调用。


调用 API 过程
  在声明了函数之后,调用它的方式与标准的 Visual Basic 函数相同。在下例中,Form Load 事件调用了上面声明的过程。
  Private Sub Form_Load()
    SetWindowText Form1.hWnd, "Welcome to VB"
  End Sub
  在运行这段代码时,函数首先使用 hWnd 属性确定要修改标题栏的窗口(Form1.hWnd),然后将标题栏修改为“Welcome to VB”。
  需要牢记的是:Visual Basic 不能验证传递到 API 过程的值是否正确。如果传递了错误的值,那么过程将出错,并可能因此导致 Visual Basic 应用程序停止运行。这样就不得不重新加载和启动应用程序。在测试 API 过程时千万要小心,一定要经常地保存自己的工作。
  极少数 API 调用能够识别缺省的 Variant 数据类型。最好声明具体的变量类型并使用 Option Explicit,这样,API 的可靠性要高得多。
VB如何把批处理文件转换成EXE文件? VB如何调用 Office VB如何将文件删除到回收站 VB如何快速移动文件? VB如何让文本框输入完后,直接跳入下一行? VB如何使用vb取得一个文件的控制权 VB如何使用文件复制对话框? VB如何使用资源文件 VB如何用Dir()函数来列出C下所有TMP文件并且用文本框输出 VB如何在 VB 中使用 Winzip 来压缩文件? VB如何在DOS程序结束执行时,自动将其关闭? VB如何在VB中实现Undo(撤消)功能? VB如何在VB中实现目录遍历 VB如何在Windows操作系统中改变文件打开方式 VB如何知道硬盘是使用那一种文件系統(FAT32,FAT16)? VB如何自动更动成中文输入 VB删除整个目录 VB设置打印页边距 VB实现文件查找功能 VB使用SendMessage函数滚动文本框控件中的内容 VB使用 WIN95 的选择目录对话框 VB使用INI文件 VB使用WriteFile 块读写数据 VB使用历史文件记录 VB使用内存映射文件加快文件操作速度 VB数据报表设计器在多层结构开发的应用 VB突破 TextBox 32K 的限制 VB拖拽节点时实现目录树自动翻滚 位图文件内部初探-VB资料 VB文本的加密与解密 VB显示盘中所有的目录 为什么我的硬盘找不到了呢? 如何在sqlserver7中实现ID字段自动递增?(SOS) 为什么98下可以到2000下不行了.关于openfilename???????????????????????????? (困惑请教 )关于内存释放的一些问题! 数据库操作出错该如何避免???? 我是第一次来到CSDN,大家多关照! YYSUN关于大富翁论坛的解释(从水母看到的) vb 访问SYBASE的问题 支持北京伸奥的朋友,进来签个名吧! 怎样截获一个应用程序的消息? 数据结构得答案 大连的软件人员工作环境怎么样? 不好意思,小弟又来麻烦大家了! 上次的文章到那儿去了? enmity,进来,我给你结帐 enmity,进来,我给你结帐!! 各位侠客帮忙啊,重新装系统出了问题! 将10进制转换成16进制的函数是什么啊? VC高手,怎样以编程的方法实现磁带机的Backup 和 Restore. enmity,进来,我给你结帐.共200分 支援白菜300分,支持白菜个人网站建设:))) CMM 的缩写是什么? 想和大家讨论一下怎样系统的编制软件 如何实现和Word、CorelDRAW同样效果缩放位图 请问各位大哥大爷大妈大。。。。。。。。。。。。。哪里有支持 ASP 的服务器软件下载 我该如何控制IP地址??高手请进。。。 弱弱地问:关于SQL server中的中括号。 各位侠客帮忙啊,重新装系统出了问题!! 一点点小问题????? 请问在 WINDOWS98 下面,除了IIS,还有没有支持 PHP 的服务器软件呢? 在ADO中如何获取表名 关于ASN树的问题(snmp中的MIB的拓扑树) 你是高手你进来!!!!! 各位的顶级域名都在哪申请?价格/速度如何?大家都来说说! DirectX8的MultiFileReader过滤器怎么找不到? 关于用VB显示ado数据库中的图像字段问题 大家来谈谈Msdn如何有效利用 请各位帮忙查看我这段程序错在哪里 , 我是照书上做的 , 可就是无法保存. SQL plus 为何无法登录?? 谁要下载msdn? 紧急求救!寻找工作! 最新新消息~~~~~~~台灣地區中午地震最大震度花蓮市5級 有没有大连的公司要俺? 请教大家!!!java如何实现多重继承?接口该如何使用?份数可以再加,只要我明白了 怎样以编程的方法实现磁带机的Backup. 愿者请进,请各位留下自己的QQ或E-mail,以后大家可以多多交流!!! solaris unix8 的一个问题 asp是用什么软件的阿?我用了interdev,可是开始新建项目时就不行,叫你输入serve时,总是不对?应该输什么啊? 关于字符集 哪里有好的LAN管理软件??? 一个去美国的机会,保签(替朋友贴的,信誉没问题) 到底月球上有没有外星人 用阴影在图中表示出5分之2公顷 有2公顷5个格子,怎么画? 1,1,2,3,5,8,13,21,31,55.第12个是?前一百个数中【含100个】偶数的个数有多少个、? 月亮上有没有外星人呢? 图中的长方形面积表示2公顷,请用阴影部分表示出三分之二公顷 1.1+2.2+3.3+4.4+5.5+6.6分之11+22+33+44+55+66谢谢各位大哥大姐了! 月球里真有外星人吗?据科学家发现好象有 在图中用阴影表示出5分之2公顷 15°15′15″+55°14′35″-32°28′19″=? 月球上有外星人吗? 在图中用阴影表示出7/12公顷.急 77度45分+34度45分=___度____分 月球有外星人吗? 有一块3公顷的地,把它分成7份,用阴影表示出7分之9公顷,该画多少份, 34度42分=多少度 才下了谷歌地球,有月球火星的那海洋怎么没有呢?看到错误的标记点我如何提示出这个错误呢? 七分之三表示吧【 】平均分成【 】份,取这样的【 】份,它的分数单位是【 】,再加上【 】个这样的分数单位就是3. 45*46等于多少? 如何用鼠标操作谷歌地球的飞行模拟器? 7分之4乘3表示什么?,还可以表示为什么? 45*2等于多少 谷歌地球飞行模式进不去,进去总提示错误 3×7分之3表示(),3÷7分之3表示( ) 2+45等于几 谷歌地球飞行模拟器刚飞起来就各种几千度的旋转,然后空中一上一下,时速从200-800不等,高度从3000-9000不等,来回转啊转,然后就坠毁了……这东西到底怎么用啊……求解 7.5+4分之3= 2.45约等于几一直约下去,得几? 谷歌地球飞行模拟器出错每次一打开飞行模拟器,就出现这样的对话框,仔细看一下文件路径(划红线的部分)文件夹下边的子文件夹用“/”分隔,划红线的路径为什么用“\”分隔?谷歌地球抽 a分之4+a分之5=7分之3,那么a是( ). 5分之2*45等于多少 谷歌地球飞行模拟器怎么用操纵杆我的上面没办法打勾,怎么补救 七分之三可以表示,还可以表示什么 45-多少+13等于28 35*(3/35-2/53)*53简便计算过程 x+7分之6=2+14分之1怎么解? 180°-23°13′6〃*4等于几 将0.75,0.25,0.125,0.375,0.625,0.875化成最简分数 5分之7-X=14分之3 角1是36度,求角2 阿波罗11号真的上过月球吗?月球上的日夜温差很大的,白天几百慑氏度,夜里零下几百度!一般的金属在这种温差下都是要分解的!美国人的太空车的金属能熬住这么大温差?太空人的装备能熬住? 1+2+3+4.+99等于多少 x+7分之8=x-2分之2怎么解 美国的阿波罗20号飞船从月球带回外星人的尸体,是不是恶作剧或骗人的? 3分支4-(-7分之8)-2-(+3分支1)-7分支1 x:5分之7=8分之7解比例要求全过程. 谷歌地球上有关麦田怪圈或是UFO坠毁或者沉船的座标! 2002/1×3+2002/3×5+2002/5×7+2002/7×9+2002/9×11 简便计算 3.5:7分之8=x:5分之2(解比例只要答案) 我用谷歌地球的时候,在非洲好望角上有一个照片(球形的),里面发现了一个酷似UFO的东西, 1—2—3+4+5—6—7+8+9—10—11…+2001—2002—2003 求简便运算过程1—2—3+4+5—6—7+8+9—10—11…+2001—2002—2003 求简便运算过程 求快速. 急!0.75-2又4分之3-0.125+12又7分之5-48分之1+|6又7分之5-10|要过程~~~~ 这个是不是UFO啊!我用谷歌地球6.2看到的,是在美国,大家看下到底是神马? 2002/1×3+2002/3×5+2002/5×7+2002/7×9+2002/9×11简便计算 下面的分数请化成最简分数;75分之12、65分之15、130分之80、30分之25、55分之33、48分之32、75分之125还有63分之117 月球上有没有外星人 7分之四乘3分之2加7分之4 [2-(5.55×1又3分之1-2又10分之7)]÷0.9 月亮上有外星人吗? 4分之3乘( )=( )乘8分之7=( )+7分之4=( )-2分之1=1 观察:1+2+3+4+5+6+7+8+9+10=(1+10)*(10÷2 )=11*5=55计算:1992/1993+1991/1993+1990/1993+...+3/1993+2/1993+1/1993=?/:分数线 分子/分母
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn