如何在win10上使用api函数

1.api函数怎么用

API函数

操作系统除了协调应用程序的执行、内存分配、系统资源管理外,同时也是一个很大的服务中心,调用这个服务中心的各种服务(每一种服务是一个函数),可以帮助应用程序达到开启视窗、描绘图形、使用周边设备的目的,由于这些函数服务的对象是应用程序(Application),所以称之为Application Programming Interface,简称API函数。

例子:

读者可能在许多书上看到过API的英文全称(Application Programming Interface),WIN32 API也就是MicrosoftWindows32位平台的应用程序编程接口。对这个定义的理解,需要追溯到操作系统的发展历史上,当WINDOWS操作系统开始占据主导地位的时候,开发WINDOWS平台下的应用程序成为人们的需要。而在WINDOWS程序设计领域处于发展的初期,WINDOWS程序员所能使用的编程工具唯有API函数,这些函数是WINDOWS提供给应用程序与操作系统的接口,他们犹如“积木块”一样,可以搭建出各种界面丰富,功能灵活的应用程序。所以可以认为API函数是构筑整个WINDOWS框架的基石,在它的下面是WINDOWS的操作系统核心,而它的上面则是所有的华丽的WINDOWS应用程序。但是,那时的WINDOWS程序开发还是比较复杂的工作,程序员必须熟记一大堆常用的API函数,而且还得对WINDOWS操作系统有深入的了解。然而随着软件技术的不断发展,在WINDOWS平台上出现了很多优秀的可视化编程环境,程序员可以采用“即见即所得”的编程方式来开发具有精美用户界面和功能强大的应用程序。这些优秀可视化编程环境操作简单、界面友好(诸如VB、VC++、DELPHI等),在这些工具中提供了大量的类库和各种控件,它们替代了API的神秘功能,事实上这些类库和控件都是构架在WIN32 API函数基础之上的,是封装了的API函数的集合。它们把常用的API函数的组合在一起成为一个控件或类库,并赋予其方便的使用方法,所以极大的加速了WINDOWS应用程序开发的过程。有了这些控件和类库,程序员便可以把主要精力放在程序整体功能的设计上,而不必过于关注技术细节。实际上如果我们要开发出更灵活、更实用、更具效率的应用程序,必然要涉及到直接使用API函数,虽然类库和控件使应用程序的开发简单的多,但它们只提供WINDOWS的一般功能,对于比较复杂和特殊的功能来说,使用类库和控件是非常难以实现的,这时就需要采用API函数来实现。 这也是API函数使用的场合,所以我们对待API函数不必刻意研究每一个函数的用法,那也是不现实的(能用的到的API函数有几千个呢)。

2.如何调用API函数

该程序演示了如何用鼠标来获得任何像素的RGB颜色。

该程序使用了计时器,间隔设置为0.01秒来捕捉事件,使用了GetPixel , GetCursorPos 和GetDC WinAPI调用,来获得屏幕上任何地方的像素的颜色。 option Explicit '在表单中加入计时器,使用鼠标移动到屏幕上任何一处,RGB颜色就会显示在表单中的Caption中 ' private Type POINTAPI x as Long y as Long End Type ' private Declare Function GetPixel Lib "gdi32" (byval hdc as Long, _ byval x as Long, byval y as Long) as Long private Declare Function GetCursorPos Lib "user32" (lpPoint as POINTAPI) as Long private Declare Function GetWindowDC Lib "user32" (byval hwnd as Long) as Long ' private Sub Form_Load() Timer1.Interval = 100 End Sub ' private Sub Timer1_Timer() Dim tPOS as POINTAPI Dim sTmp as string Dim lColor as Long Dim lDC as Long ' lDC = GetWindowDC(0) Call GetCursorPos(tPOS) lColor = GetPixel(lDC, tPOS.x, tPOS.y) Label2.BackColor = lColor ' sTmp = Right$("000000" & Hex(lColor), 6) Caption = "R:" & Right$(sTmp, 2) & " G:" & mid$(sTmp, 3, 2) & " B:" & Left$(sTmp, 2) End Sub 至于获取当前窗口,可以使用 Public Declare Function GetForegroundWindow Lib "user32" () As Long 获取当前活动窗体的句柄,再使用GetWindowText的API能获取到相应的标题啦!Public Declare Function GetForegroundWindow Lib "user32" () As Long Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Public Const WM_GETTEXT = &HD Public Function GetWin() As String Dim tmp As Long Dim iLen As Long Dim Txt As String tmp = GetForegroundWindow Txt = String(255, Chr(0)) iLen = SendMessage(tmp, WM_GETTEXT, Len(Txt), ByVal Txt) Txt = Left(Txt, iLen) GetWin=Txt End Function 以上代码是获取当前窗体的标题代码!(这里没使用GetWindowText的API)。

3.C# Windows API函数怎么使用,举例说明

//调用方法不难,但是自己要查清楚所调的函数的一些参数才能调

using System;

using System.Runtime.InteropServices;

class Program

{

[DllImport("User32.dll")]//引用你调用的API函数的DLL,这个自己可以在MS上查得到。一般就那几个DLL

public static extern int MessageBox(int h, string m, string c, int type);//声明API函数,名字要和API名字一样。还有参数要和API的参数对应 ,C#和API的参数之间有些类型对应规则,自己查。

static int Main()

{

MessageBox(0, "显示内容", "窗口名", 4);//各参数的含义在MS的API函数中有解释。第一个参数是弹出窗口的父窗口,第二个是显示内容,第三个是窗口标题,第四个是窗口类型。

Console.ReadLine();

return 0;

}

}

//这是个C#控制台程序调用的是WINDOWS的弹出对话框API自己把代码复制上去运行下就行了。其他程序调用方法一样。

4.如何用API函数实现WINDOWS下的串口写程

用API函数实现Windows下的串行通讯冯华亮 2002年4月 四川·电子科大以往的DOS系统是通过DOS中断和BIOS中断向用户提供串行接口的通讯能力。

在Windows环境下,C++的开发工具既没有提供象DOS和BIOS中那样专门的串行通讯控制方法,也不允许用户直接控制串口的中断。为了保证资源共享,Windows系统完全接管了各种硬件资源,使用中断来控制端口将破坏系统的多任务性,使系统的稳定性受到影响。

但Windows同时也提供了功能强大的API函数使用户能间接的控制串行通讯。1、实现串行通讯的相关API函数API函数不仅提供了打开和读写通讯端口的操作方法,还提供了名目繁多的函数以支持对串行通讯的各种操作。

常用函数及作用如表5-1所示。表5-1 常用串行通讯API函数及其作用函数名 作用CreateFile 打开串口GetCommState 检测串口设置SetCommState 设置串口BuilderCommDCB 用字符串中的值来填充设备控制块GetCommTimeouts 检测通信超时设置SetCommTimeouts 设置通信超时参数SetCommMask 设定被监控事件WaitCommEvent 等待被监控事件发生 等待多个被监测对象的结果WriteFile 发送数据ReadFile 接收数据GetOverlappedResult 返回最后重叠(异步)操作结果PurgeComm 清空串口缓冲区,退出所有相关操作ClearCommError 更新串口状态结构体,并清除所有串口硬件错误CloseHandle 关闭串行口2、打开串口函数CreateFile原本用于打开文件,但它同样可用于打开一个通信端口。

与系统中其他对象一样,通信端口也是用句柄来标识的。CreateFile函数返回被操作的通信端口句柄,其调用方法如下:HANDLE CreateFile (LPCTSTR lpFileName, //指向文件名字符串的指针DWORD dwDesireAccess, //操作模式DWORD dwShareMode, //共享方式LPSECURITY_ATTRIBUTES lpSecurityAttributes, //指向安全属性的指针DWORD , //文件建立方式DWORD dwFlagsAndAttributes //文件属性HANDLE hTemplateFile //模板文件句柄)lpFileName:指向一个以NULL结束的字符串,该串指定了要创建、打开或截断的文件、管道、通信源、磁盘设备或控制台的名字。

当用CreateFile打开串口时,这个参数可用“COM1”指定串口1,用“COM2”指定串口2,依此类推。dwDesireAccess: 指定对文件访问的类型,该参数可以为GENERIC_READ(指定对该文件的读访问权)或ENERIC_WRITE(指定该文件的写访问权)两个值之一或同时为为这两个值。

用ENERIC_READ|GENERIC_WRITE则指定可对串口进行读写;dwShareMode:指定此文件可以怎样被共享。因为串行口不支持任何共享模式,所以dwShareMode必须设为0;lpSecurityAttributes定义安全属性,一般不用,可设为NULL。

Win 9x下该参数被忽略;定义文件创建方式, 对串口必须设为OPEN_EXISTING,表示打开已经存在的文件;dwFlagsAndAttributes为该文件指定定义文件属性和标志,这个程序中设为FILE_FLAG_OVERLAPPED,表示异步通信方式;hTemplateFile 指向一个模板文件的句柄,串口无模板可言,设为NULL。在 Windows 9x下该参数必须为NULL。

用异步读写方式打开串口1的函数调用如下:m_hComm = CreateFile(“COM1”, //打开串口1GENERIC_READ | GENERIC_WRITE, //读写方式0, //不能共享NULL, //不用安全结构OPEN_EXISTING, //打开已存在的设备FILE_FLAG_OVERLAPPED, //异步方式0); //无模板串口被成功打开时,返回其句柄,否则返回INVALID_HANDLE_VALUE(0XFFFFFFFF)。3、串口设置第一次打开串口时,串口设置为系统默认值,函数GetCommState和SetCommState可用于检索和设定端口设置的DCB(设备控制块)结构,该结构中BaudRate、ByteSize、StopBits和Parity字段含有串口波特率、数据位数、停止位和奇偶校验控制等信息。

程序中可先用GetCommState检索端口的当前设置,修改其中的部分字段后再用SetCommState进行端口设定。这样可不必构造一个完整的DCB结构。

下面介绍几个主要的函数和结构体:(1)GetCommStateBOOL GetCommState( hCommDev, lpdcb);参数hCommDev标识通信设备,应使用CreateFile返回的句柄。Lpdcb是指向DCB结构的指针,函数调用后当前串口配置信息将被保存在这个结构内。

如果函数成功返回值为TRUE;否则返回值为FALSE。SetCommState用法与GetCommState相似,在此不再重复。

DCB结构定义如下(只介绍主要的几项):typedef struct _ DCB{……DWORD BardRate; //波特率的设置BYTE ByteSize; //数据位的个数BYTE Parity; //是否有奇偶校验位BYTE StopBits; //停止位的个数……}DCB;(2)SetCommTimeoutsBOOL SetCommTimeouts( hCommDev, lpctmo );Lpctmo指向包含新的超时参数的COMMTIMEOUTS结构。COMMTIMEOUTS结构定义如下:typedef struct _ COMMTIMEOUTS{DWORD ReadIntervalTimeout;DWORD ;DWORD ;DWORD 。

如何在win10上使用api函数

转载请注明出处windows之家 » 如何在win10上使用api函数

win10

win10虚拟机如何传文件

阅读(137)

本文主要为您介绍win10虚拟机如何传文件,内容包括win10自带虚拟机怎么传文件,win10自带虚拟机怎么传文件,如何将win10虚拟机文件夹共享文件夹。1,centos里弄samba,开可读写,用win访问centos的共享往里面复制2,win开共享,centos连接到win共享,图

win10

win10如何使用扁平化桌面

阅读(94)

本文主要为您介绍win10如何使用扁平化桌面,内容包括如何做到win10风格扁平化设计,如何做到win10风格扁平化设计,怎样在Win10任务栏上设置QQ图标扁平化。样的显著功能之外,Windows10还拥有不少改变了系统外观和感觉的细微改动,那么Win10界面究

win10

win10游戏时如何返回桌面

阅读(99)

本文主要为您介绍win10游戏时如何返回桌面,内容包括win10全屏玩游戏时如你快速切回桌面,win10系统玩游戏时要怎么切回桌面,各种方法都用了,每种都不行,,win10全屏游戏返回桌面快捷键。Alt+Tab 切换窗口(一次不行多切几下),不行就Ctrl+ Alt +De

win10

win10如何取消shift粘黏

阅读(198)

本文主要为您介绍win10如何取消shift粘黏,内容包括shift粘滞键怎么取消win10,粘滞键,教您Win10如何取消粘滞键,SHIFT键如何取消粘滞。按windows键打开开始菜单后,点击打开Windows 系统文件夹, 然后点击打开控制面板:

win10

如何更改win10任务栏的图标

阅读(94)

本文主要为您介绍如何更改win10任务栏的图标,内容包括win10怎么修改应用在任务栏的图标,win10正式版任务栏图标怎么修改,怎么把win10任务栏改成小图标。方法如下: 首先打开“开始”菜单。点击下方的设置。2、打开“设置”面板,点击“系统”。

win10

win10如何删除库里面的文件

阅读(105)

本文主要为您介绍win10如何删除库里面的文件,内容包括win10怎么删除我的库,如何彻底删除Win10系统自带的库,windows10怎么删除文件。旧的系统会在windows.old文件夹中1 依次:“计算机”→单击Windows.old文件夹所在的盘符右键→“属性”2打

win10

如何让win10截屏黑屏

阅读(144)

本文主要为您介绍如何让win10截屏黑屏,内容包括Win10系统任意截图黑屏是怎么回事,win1064位系统截图黑屏怎么解决方法,win10为什么截图是黑屏怎么办。温度过高,造成系统不稳定,请查看cpu、显卡、内存、硬盘、主板等部分散热是否出现问题。在

win10

重装一个win10如何分盘

阅读(109)

本文主要为您介绍重装一个win10如何分盘,内容包括装了win10就一个盘怎么分区,重装win10系统时怎么重新分盘,安装正版win10怎么分区。给win10系统分区步骤方法:方法一:windows 10磁盘管理软件1.鼠标右击“计算机”,选择“管理”标签;打开“计算

win10

win10如何取消快捷新建桌面

阅读(93)

本文主要为您介绍win10如何取消快捷新建桌面,内容包括win10怎么禁止桌面生成快捷方式图标,win10怎么取消桌面图标快捷键,win10系统怎麽取消快捷方式。最简单的方法我们可以通过修改注册表来搞定。 按WIN+R 调出运行,然后办输入 regedit 回车

win10

如何调整WIN10系统360浏览器

阅读(147)

本文主要为您介绍如何调整WIN10系统360浏览器,内容包括win10360设置默认浏览器怎么设置,win10怎么不能设置360浏览器为默认浏览器,win10下360浏览器怎么设置更流畅。工具原料:电脑+360浏览器将360浏览器设置为默认浏览器方法如下:点击右上角

win10

WIN10如何连接RS485

阅读(251)

本文主要为您介绍WIN10如何连接RS485,内容包括rs485怎么连电脑上,怎么连接普通电脑和带RS485接口,rs485接口怎么连接电脑实现远程通信。常见的电脑是没有rs485接口的所以得扩展如 USB扩展RS485E820A USB与1路RS-485/422接口转换器特点▶ 完

win10

win10系统如何增加系统盘容量

阅读(121)

本文主要为您介绍win10系统如何增加系统盘容量,内容包括win10系统C盘空间太小了怎么办Win10系统增加扩容C盘空间方法百,win10电脑怎样扩大C盘空间,Win10系统怎么增加C盘空间。C盘空间太小需要扩容C盘的容量。 扩容C盘空间的方法: 下载分区助

win10

win10如何共享xp上的打印机驱动

阅读(118)

本文主要为您介绍win10如何共享xp上的打印机驱动,内容包括windows10怎么共享xp上的打印机,win10打印机如何共享给xp,win10和xp打印机共享怎么设置。首先先把支持win10的打印机驱动在电脑上安装一遍,然后左下角开始菜单---右键----控制面板--

win10

win10如何建立远程桌面连接

阅读(112)

本文主要为您介绍win10如何建立远程桌面连接,内容包括win10系统怎么建立远程桌面连接,win10怎么创建远程桌面连接,windows10怎么开启远程桌面连接。工具: Win10 远程桌面连接设置 Win10远程桌面连接设置:右键Win10系统桌面上的“这台电脑”,

win10

win10虚拟机如何传文件

阅读(137)

本文主要为您介绍win10虚拟机如何传文件,内容包括win10自带虚拟机怎么传文件,win10自带虚拟机怎么传文件,如何将win10虚拟机文件夹共享文件夹。1,centos里弄samba,开可读写,用win访问centos的共享往里面复制2,win开共享,centos连接到win共享,图

win10

win10如何使用扁平化桌面

阅读(94)

本文主要为您介绍win10如何使用扁平化桌面,内容包括如何做到win10风格扁平化设计,如何做到win10风格扁平化设计,怎样在Win10任务栏上设置QQ图标扁平化。样的显著功能之外,Windows10还拥有不少改变了系统外观和感觉的细微改动,那么Win10界面究

win10

win10游戏时如何返回桌面

阅读(99)

本文主要为您介绍win10游戏时如何返回桌面,内容包括win10全屏玩游戏时如你快速切回桌面,win10系统玩游戏时要怎么切回桌面,各种方法都用了,每种都不行,,win10全屏游戏返回桌面快捷键。Alt+Tab 切换窗口(一次不行多切几下),不行就Ctrl+ Alt +De

win10

win10如何取消shift粘黏

阅读(198)

本文主要为您介绍win10如何取消shift粘黏,内容包括shift粘滞键怎么取消win10,粘滞键,教您Win10如何取消粘滞键,SHIFT键如何取消粘滞。按windows键打开开始菜单后,点击打开Windows 系统文件夹, 然后点击打开控制面板:

win10

如何更改win10任务栏的图标

阅读(94)

本文主要为您介绍如何更改win10任务栏的图标,内容包括win10怎么修改应用在任务栏的图标,win10正式版任务栏图标怎么修改,怎么把win10任务栏改成小图标。方法如下: 首先打开“开始”菜单。点击下方的设置。2、打开“设置”面板,点击“系统”。

win10

win10如何删除库里面的文件

阅读(105)

本文主要为您介绍win10如何删除库里面的文件,内容包括win10怎么删除我的库,如何彻底删除Win10系统自带的库,windows10怎么删除文件。旧的系统会在windows.old文件夹中1 依次:“计算机”→单击Windows.old文件夹所在的盘符右键→“属性”2打

win10

如何让win10截屏黑屏

阅读(144)

本文主要为您介绍如何让win10截屏黑屏,内容包括Win10系统任意截图黑屏是怎么回事,win1064位系统截图黑屏怎么解决方法,win10为什么截图是黑屏怎么办。温度过高,造成系统不稳定,请查看cpu、显卡、内存、硬盘、主板等部分散热是否出现问题。在

win10

win10系统死机怎么回事

阅读(121)

本文主要为您介绍win10系统死机怎么回事,内容包括Win10系统的电脑总是死机怎么办,win10系统电脑死机怎么回事,win10系统怎么莫名其妙死机。Win10系统的电脑总是死机解决方法如下:1. 尽量下载兼容或支持Win10运行环境的应用,通常在下载此类应