Windows API

楼主: fumizuki (蒙面加菲狮)   2005-04-16 18:22:43
API 全名 Application Programming Interface,应用程式接口。
简单来讲,VB 本身无法完成的工作,可透过 API 来完成。
API 亦提供给其它程式语言使用,并不是专属于 VB 的。
使用 API 的方法,在 VB 中是使用 Declare 陈述式来宣告引用动态连结程式库 (DLL)。
例如:
Public Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" _
(ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
通用的动态连结程式库有下列12种:
Advapi32.dll 进阶 API 伺服程式库,支援许多的 API 功能。
(其中包括许多安全性与注册方面的呼叫)
Comdlg32.dll 通用对话方块 API 程式库
Gdi32.dll 图形周边设备接口 API 程式库
Kernel32.dll Windows 32 位元核心的 API 支援
Lz32.dll 32 位元压缩例程
Mpr.dll 多接口路由器 (Multiple Provider Routerver) 程式库
Netapi32.dll 32 位元网络 API 程式库
Shell32.dll 32 位元 Shell API 程式库
User32.dll 使用者接口例程程式库
Version.dll 版本程式库
Winmm.dll Windows 多媒体程式库
Winspool.drv 包含背景打印 API 呼叫的背景打印接口 (Print spooler interface)。
以上的函式宣告都收录在下面所示之档案中
C:\Program Files\Microsoft Visual Studio\Common\Tools\Winapi\Win32API.txt
总共包含了 1594 个函式、6408 个常数、419 个自订型态。
这么多的函式要找到其宣告的方式不容易,VB6 提供了 API viewer (API 检视员),让
我们可以快速找到想要的函式、常数、型态。
开启 API 检视员的方法为:
1) 增益集功能表 - 增益功能管理员
2) 找到 Visual Basic 6 API 检视员
3) 设定加载、启动时加载
之后每一次要使用 API 检视员就可以从增益集功能表中点选 API 检视员即可开启。
选好了需要的函式、常数或型态后,点选复制,然后关掉 API 检视员,再回到 VB 的模
组中,贴上刚才复制的资料即可。
提醒一点,API 函式的执行发生任何意外错误,是 VB6 不能拦截除错的,所以程式发生
错误而直接结束程式是很常见的现象。
并且养成良好习惯,不要使用 End 陈述式来终止程式的执行,改用 Unload 载出表单的
方式来结束程式,由其是有使用某些 API 的时候。
例如:SetWindowsHookEx,结束前必须呼叫 UnhookWindowsHookEx。
关于有哪些 API 可以使用,其功能为何,要如何使用,可参考下列网站,皆有说明:
VB 研究小站 http://www.vincent.com.tw/vb/
VB 心得笔记 http://sunh.hosp.ncku.edu.tw/~cww/
MSDN 逐步解说:呼叫 Windows API (Visual Basic)
Visual Studio 2012
http://msdn.microsoft.com/zh-tw/library/172wfck9(v=vs.110).aspx
Visual Studio 2010
http://msdn.microsoft.com/zh-tw/library/172wfck9(v=vs.100).aspx
Visual Studio 2008
http://msdn.microsoft.com/zh-tw/library/172wfck9(v=vs.90).aspx
Windows 市集应用程式的 Windows API 参考
(市集应用程式需使用 Visual Studio 2012 / Windows 8 开发)
http://msdn.microsoft.com/zh-tw/library/windows/apps/br211377.aspx
作者: IamCoolKing (我是酷国王!!!)   2005-04-24 11:05:00
VB 心得笔记 网址失效了
作者: hsiliang (小锡亮)   2005-12-10 12:11:00
推,谢谢大大分享

Links booklink

Contact Us: admin [ a t ] ucptt.com