常用API函数分类:打印函数、文本和字体函数
WindowsAPI常用函数

WindowsAPI常⽤函数.Net中虽然类库很强的,但还是有些时候功能有限,掌握常⽤的api函数,会给我们解决问题提供另⼀种思路,下⾯给出⾃⼰常⽤到的Api函数,以备查询。
1,SetForegroundWindow将窗⼝显⽰到最前⾯,前提是窗⼝没有最⼩化。
[DllImport("User32.dll")]public static extern bool SetForegroundWindow(IntPtr hWnd);2,ShowWindowAsync显⽰窗⼝,如最⼩化后显⽰正常,这是异步的。
[DllImport("User32.dll")]public static extern bool ShowWindowAsync(IntPtr hWnd, int cmdShow);public enum ShowState : int{SW_HIDE = 0,SW_SHOWNORMAL = 1,SW_NORMAL = 1,SW_SHOWMINIMIZED = 2,SW_SHOWMAXIMIZED = 3,SW_MAXIMIZE = 3,SW_SHOWNOACTIVATE = 4,SW_SHOW = 5,SW_MINIMIZE = 6,SW_SHOWMINNOACTIVE = 7,SW_SHOWNA = 8,SW_RESTORE = 9,SW_SHOWDEFAULT = 10,SW_FORCEMINIMIZE = 11,SW_MAX = 11}3,SendMessage进程间通信,接受窗⼝要有消息循环才⾏。
WM_COPYDATApublic const int WM_COPYDATA = 0x004A;public struct COPYDATASTRUCT{public IntPtr dwData;public int cbData;[MarshalAs(UnmanagedType.LPStr)]public string lpData;}[DllImport("User32.dll", EntryPoint = "SendMessage")]public static extern int SendMessage(IntPtr hWnd, // handle to destination windowint Msg, // messageint wParam, // first message parameterref COPYDATASTRUCT lParam // second message parameter);例⼦:发送⽅:byte[] sarr = System.Text.Encoding.Default.GetBytes(args[0]);Winn32.COPYDATASTRUCT copyData = new Winn32.COPYDATASTRUCT();copyData.cbData = sarr.Length + 1;copyData.lpData = args[0];copyData.dwData = (IntPtr)100; //这⾥随便写什么数字Winn32.SendMessage(runningInstance.MainWindowHandle, Winn32.WM_COPYDATA, 0, ref copyData);接收⽅protected override void DefWndProc(ref Message m){if (m.Msg == Winn32.WM_COPYDATA){Winn32.COPYDATASTRUCT copyData = new Winn32.COPYDATASTRUCT();Type type = copyData.GetType();copyData = (Winn32.COPYDATASTRUCT)m.GetLParam(type);this.textBox1.Text = copyData.lpData;}base.DefWndProc(ref m);}4,FindWindow找到窗⼝句柄[DllImport("User32.dll", EntryPoint = "FindWindow")]private static extern int FindWindow(string lpClassName, string lpWindowName);5,SetLocalTime设定系统时间[StructLayout(LayoutKind.Sequential)]public struct SYSTEMTIME{public ushort wYear;public ushort wMonth;public ushort wDayOfWeek;public ushort wDay;public ushort wHour;public ushort wMinute;public ushort wSecond;public ushort wMilliseconds;public void FromDateTime(DateTime dateTime){wYear = (ushort)dateTime.Year;wMonth = (ushort)dateTime.Month;wDayOfWeek = (ushort)dateTime.DayOfWeek;wDay = (ushort)dateTime.Day;wHour = (ushort)dateTime.Hour;wMinute = (ushort)dateTime.Minute;wSecond = (ushort)dateTime.Second;wMilliseconds = (ushort)lisecond;}public DateTime ToDateTime(){return new DateTime(wYear, wMonth, wDay, wHour, wMinute, wSecond); }}[DllImport("kernel32.dll")]public static extern bool SetLocalTime(ref SYSTEMTIME Time);6,SHGetFileInfo获取执⾏⽂件的图标icon[Flags]enum SHGFI : int{/// <summary>get icon</summary>Icon = 0x000000100,/// <summary>get display name</summary>DisplayName = 0x000000200,/// <summary>get type name</summary>TypeName = 0x000000400,/// <summary>get attributes</summary>Attributes = 0x000000800,/// <summary>get icon location</summary>IconLocation = 0x000001000,/// <summary>return exe type</summary>ExeType = 0x000002000,/// <summary>get system icon index</summary>SysIconIndex = 0x000004000,/// <summary>put a link overlay on icon</summary>LinkOverlay = 0x000008000,/// <summary>show icon in selected state</summary>Selected = 0x000010000,/// <summary>get only specified attributes</summary>Attr_Specified = 0x000020000,/// <summary>get large icon</summary>LargeIcon = 0x000000000,/// <summary>get small icon</summary>SmallIcon = 0x000000001,/// <summary>get open icon</summary>OpenIcon = 0x000000002,/// <summary>get shell size icon</summary>ShellIconSize = 0x000000004,/// <summary>pszPath is a pidl</summary>PIDL = 0x000000008,/// <summary>use passed dwFileAttribute</summary>UseFileAttributes = 0x000000010,/// <summary>apply the appropriate overlays</summary>AddOverlays = 0x000000020,/// <summary>Get the index of the overlay in the upper 8 bits of the iIcon</summary> OverlayIndex = 0x000000040,}[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]public struct SHFILEINFO{public SHFILEINFO(bool b){hIcon = IntPtr.Zero;iIcon = 0;dwAttributes = 0;szDisplayName = "";szTypeName = "";}public IntPtr hIcon;public int iIcon;public uint dwAttributes;[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]public string szDisplayName;[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 80)]public string szTypeName;};[DllImport("shell32.dll", CharSet = CharSet.Unicode)]//路径有中⽂字符,要⽤unicodepublic static extern int SHGetFileInfo(string pszPath,int dwFileAttributes,out SHFILEINFO psfi,uint cbfileInfo,SHGFI uFlags);例⼦:private static Icon GetIcon(string strPath, bool bSmall){SHFILEINFO info = new SHFILEINFO(true);int cbFileInfo = Marshal.SizeOf(info);SHGFI flags;if (bSmall)flags = SHGFI.Icon | SHGFI.SmallIcon | eFileAttributes;elseflags = SHGFI.Icon | rgeIcon;Win32API.SHGetFileInfo(strPath, 256, out info, (uint)cbFileInfo, flags);return Icon.FromHandle(info.hIcon);}7,GetWindowThreadProcessId得到句柄的进程和线程ID,返回的是线程ID,ref返回的是进程ID[System.Runtime.InteropServices.DllImport("User32.dll")]private static extern int GetWindowThreadProcessId(int Hwnd, ref int OutPressId);例⼦:杀死excel进程int processID = 0;int threadID;threadID = GetWindowThreadProcessId(excelApp.Hwnd, ref processID);if (processID > 0){System.Diagnostics.Process process = System.Diagnostics.Process.GetProcessById(processID); if (process != null){ process.Kill(); }}。
办公经常用到的函数

办公经常用到的函数办公软件是我们日常工作中必不可少的工具之一,而其中最常用的功能就是各种函数。
函数可以帮助我们进行数据计算、统计分析、逻辑判断等操作,提高工作效率。
下面是办公经常用到的一些函数。
1.SUM函数:求和函数,用于对一列数据进行求和操作。
例如,可以使用SUM函数计算销售额总和。
2.AVERAGE函数:平均值函数,用于计算一组数据的平均值。
比如,可以使用AVERAGE函数计算平均工资。
3.MAX函数和MIN函数:最大值和最小值函数,用于找出一组数据中的最大值和最小值。
例如,可以使用MAX函数找出最高分数,使用MIN函数找出最低温度。
4.COUNT函数:计数函数,用于统计一组数据中非空单元格的数量。
比如,可以使用COUNT函数统计缺勤的次数。
5.IF函数:条件判断函数,根据给定的条件返回不同的结果。
例如,可以使用IF函数判断学生成绩是否及格,并返回相应的评语。
6.VLOOKUP函数:垂直查找函数,用于在表格中查找一些值,并返回该值所在行或列的数据。
比如,可以使用VLOOKUP函数查找一些产品的价格。
7.CONCATENATE函数:字符拼接函数,用于将多个文本串合并为一个。
例如,可以使用CONCATENATE函数将名字和地址拼接成一个完整的地址。
8.DATE函数:日期函数,用于创建日期。
比如,可以使用DATE函数创建指定日期的时间戳。
9. TEXT函数:文本格式化函数,用于将数值或日期格式化为文本。
例如,可以使用TEXT函数将日期格式化为"yyyy-mm-dd"的形式。
10.UPPER函数和LOWER函数:大小写转换函数,用于将文本转换为大写或小写。
比如,可以使用UPPER函数将单词全部转换为大写。
12.LEFT函数和RIGHT函数:从左边或右边提取指定长度的文本。
比如,可以使用LEFT函数提取文件名中的前几个字符,使用RIGHT函数提取文件扩展名。
13.LEN函数:文本长度函数,计算文本的字符个数。
常用API函数参数1

ShowCaret函数功能:该函数使插入标记在屏幕的当前位置上可见。
当插入标记变为可见时,它自动开始闪烁。
函数原型:BOOL ShowCaret(HWND hWnd);参数:hWnd:标识拥有插入标记的窗口。
如果该参数为NULL,那么ShowCaret 搜索当前任务以发现有插入标记的窗口。
返回值:如果函数执行成功,那么返回值为非零;如果函数执行失败,那么返回值为零。
若想获取更多错误信息,请调用GetLastError函数。
备注:只有指定的窗口拥有插入标记,并且该插入标记具有形状,没有连续隐藏2次或多次时,ShowCaret才能显示该插入标记。
如果这几个条件中的一个或多个没满足,那么ShowCaret函数什么也不做,并且返回FALSE。
速查:Windows NT:3.1及以上版本Windows:95及以上版本Windows CE:1.0及以版本;头文件:winuser.h;库文件:user32.lib。
SetCaretPos函数功能:该函数将插入标记移动到指定的坐标上。
如果拥有该插人标记的窗口是使用CS_OWNDC类样式创建的,那么指定的坐标依据与该窗口相关的设备环境的映射模式而定。
函数原型:BOOL SetCaretPos(int X,int Y);参数:X:指定插入标记新的X坐标。
Y:指定插入标记新的Y坐标。
返回值:如果函数执行成功,那么返回值为非零;如果函数执行失败,那么返回值为零。
若想获取更多错误信息,请调用GetLastError函数。
备注:函数SetCaretPos不管插入标记是否隐藏都将移动它。
系统为每个队列提供一个插入标记。
窗口只能对自己拥有的插入标记进行位置的设置。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本:头文件:Winuser.h;库文件:user32.lib。
返回值如果函数调用成功,返回值是正文的高度(逻辑单位)。
文员必备50个函数

文员必备50个函数作为文员,掌握一些常用的函数可以提高工作效率。
以下是50个常用的函数:1. SUM,用于求和。
2. AVERAGE,用于求平均值。
3. CONCATENATE,用于合并文本。
4. LEFT,用于提取文本左边的字符。
5. RIGHT,用于提取文本右边的字符。
6. MID,用于提取文本中的指定部分。
7. LEN,用于计算文本的长度。
8. UPPER,用于将文本转换为大写。
9. LOWER,用于将文本转换为小写。
10. PROPER,用于将文本转换为首字母大写。
11. TRIM,用于去除文本中的空格。
12. SUBSTITUTE,用于替换文本中的指定内容。
13. FIND,用于查找文本中的指定内容。
14. SEARCH,用于在文本中查找指定内容(不区分大小写)。
15. VLOOKUP,用于垂直查找并返回相关值。
16. HLOOKUP,用于水平查找并返回相关值。
17. INDEX,用于返回列表或数组中的值。
18. MATCH,用于在列表或数组中查找指定值并返回其位置。
19. IF,用于条件判断。
20. AND,用于多个条件的“与”运算。
21. OR,用于多个条件的“或”运算。
22. NOT,用于对条件进行取反。
23. COUNT,用于计算指定范围内的数字个数。
24. COUNTIF,用于在指定范围内按条件计数。
25. COUNTIFS,用于在多个范围内按条件计数。
26. SUMIF,用于在指定范围内按条件求和。
27. SUMIFS,用于在多个范围内按条件求和。
28. AVERAGEIF,用于在指定范围内按条件求平均值。
29. AVERAGEIFS,用于在多个范围内按条件求平均值。
30. ROUND,用于对数字进行四舍五入。
31. ROUNDUP,用于对数字进行向上取整。
32. ROUNDDOWN,用于对数字进行向下取整。
33. TODAY,用于返回当前日期。
34. NOW,用于返回当前日期和时间。
Windows API函数大全

Windows API函数我们知道VB可以做很多事,但是有些事情,特别是涉及对Windows操作系统的访问,还需要借助Win32 API函数(Microsoft Win32 Application Programming Interface的缩写)。
API 函数是一组用C语言编写的函数,总共约有一千来个。
原本是为C语言编程人员而编写的,但也可以在VB应用程序中调用。
按功能划分,Win32 API函数大致涉及以下几个方面:窗口管理、图形设备接口、系统管理和多媒体技术。
Win32 API函数以动态链接库DLL提供给用户,可以在任何语言中调用。
DLL在程序运行时装入,随时响应程序的调用,不必在设计时就将文件存放在工程中,这就是动态链接的意思。
正因为如此,一个DLL程序可以同时为多个程序所调用。
在VB中引用API函数,需要事先通过Declare函数,声明要引用的DLL文件名称以及相应函数的参量。
然后便可像使用VB函数一样使用API函数。
我们看以下类似的声明语句:Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As LongGetComputerName是API函数名,kernel32是库名。
括号中的ByVal lpBuffer As String, nSize As Long就是函数的参量。
最后面的Long表示函数返回值的数据类型。
本节通过例子说明Win32 API函数的应用。
Windows在创建每个窗体时,都会赋给它一个与众不同的编号,这就是窗体的句柄。
在Windows中,窗体与控件都被看成是窗体(窗口)。
窗体的句柄保存在自己的hwnd属性中。
一.GetComputerName二、GetCursorPos三、GetWindowsDirectoryWindows API函数四、ClipCursor五、GetProfileInt六、GetProfileString七、PolygonWindows API函数八、SendMessagePublic Enum VBWin_MsgWM_NULL = &H0WM_CREATE = &H1WM_DESTROY = &H2WM_MOVE = &H3WM_SIZE = &H5WM_ACTIVATE = &H6WM_SETFOCUS = &H7WM_KILLFOCUS = &H8WM_ENABLE = &HAWM_SETREDRAW = &HBWM_SETTEXT = &HCWM_GETTEXTLENGTH = &HEWM_PAINT = &HFWM_CLOSE = &H10WM_QUERYENDSESSION = &H11WM_QUIT = &H12WM_QUERYOPEN = &H13WM_ERASEBKGND = &H14WM_SYSCOLORCHANGE = &H15WM_ENDSESSION = &H16WM_SHOWWINDOW = &H18WM_WININICHANGE = &H1AWM_DEVMODECHANGE = &H1BWM_ACTIVATEAPP = &H1CWM_FONTCHANGE = &H1DWM_TIMECHANGE = &H1EWM_CANCELMODE = &H1FWM_SETCURSOR = &H20WM_MOUSEACTIVATE = &H21WM_CHILDACTIVATE = &H22WM_QUEUESYNC = &H23WM_GETMINMAXINFO = &H24'begin_r_winuserWM_PAINTICON = &H26WM_ICONERASEBKGND = &H27WM_NEXTDLGCTL = &H28WM_SPOOLERSTATUS = &H2AWM_DRAWITEM = &H2BWM_MEASUREITEM = &H2CWM_DELETEITEM = &H2DWM_VKEYTOITEM = &H2EWM_CHARTOITEM = &H2FWM_SETFONT = &H30WM_GETFONT = &H31WM_SETHOTKEY = &H32WM_GETHOTKEY = &H33WM_QUERYDRAGICON = &H37WM_COMPAREITEM = &H39WM_COMPACTING = &H41WM_COMMNOTIFY = &H44 '/* no longer suported */WM_WINDOWPOSCHANGING = &H46WM_WINDOWPOSCHANGED = &H47WM_POWER = &H48WM_CANCELJOURNAL = &H4B'end_r_winuser'lParam of WM_COPYDATA message points to...'begin_r_winuser' '#if(WINVER > = 0x0400)WM_NOTIFY = &H4EWM_INPUTLANGCHANGEREQUEST = &H50WM_INPUTLANGCHANGE = &H51WM_TCARD = &H52WM_HELP = &H53WM_USERCHANGED = &H54WM_NOTIFYFORMAT = &H55WM_CONTEXTMENU = &H7BWM_STYLECHANGING = &H7CWM_STYLECHANGED = &H7DWM_DISPLAYCHANGE = &H7EWM_GETICON = &H7FWM_SETICON = &H80' '#endif /* WINVER > = 0x0400 */WM_NCCREATE = &H81WM_NCDESTROY = &H82WM_NCCALCSIZE = &H83WM_NCHITTEST = &H84WM_NCPAINT = &H85WM_NCACTIVATE = &H86WM_GETDLGCODE = &H87WM_SYNCPAINT = &H88WM_NCMOUSEMOVE = &HA0WM_NCLBUTTONDOWN = &HA1WM_NCLBUTTONUP = &HA2WM_NCLBUTTONDBLCLK = &HA3WM_NCRBUTTONDOWN = &HA4WM_NCRBUTTONUP = &HA5WM_NCRBUTTONDBLCLK = &HA6WM_NCMBUTTONDOWN = &HA7WM_NCMBUTTONUP = &HA8WM_NCMBUTTONDBLCLK = &HA9WM_KEYFIRST = &H100WM_KEYDOWN = &H100WM_KEYUP = &H101WM_CHAR = &H102WM_SYSKEYDOWN = &H104WM_SYSKEYUP = &H105WM_SYSCHAR = &H106WM_SYSDEADCHAR = &H107WM_KEYLAST = &H108' '#if(WINVER > = 0x0400)WM_IME_STARTCOMPOSITION = &H10DWM_IME_ENDCOMPOSITION = &H10EWM_IME_COMPOSITION = &H10FWM_IME_KEYLAST = &H10F' '#endif /* WINVER > = 0x0400 */WM_INITDIALOG = &H110WM_COMMAND = &H111WM_SYSCOMMAND = &H112WM_TIMER = &H113WM_HSCROLL = &H114WM_VSCROLL = &H115WM_INITMENU = &H116WM_INITMENUPOPUP = &H117WM_MENUSELECT = &H11FWM_MENUCHAR = &H120WM_ENTERIDLE = &H121'#if(WINVER > = 0x0500)WM_MENURBUTTONUP = &H122WM_MENUDRAG = &H123WM_MENUGETOBJECT = &H124WM_UNINITMENUPOPUP = &H125WM_MENUCOMMAND = &H126'#endif /* WINVER > = 0x0500 */WM_CTLCOLORMSGBOX = &H132WM_CTLCOLOREDIT = &H133WM_CTLCOLORLISTBOX = &H134WM_CTLCOLORBTN = &H135WM_CTLCOLORDLG = &H136WM_CTLCOLORSCROLLBAR = &H137WM_CTLCOLORSTATIC = &H138WM_MOUSEFIRST = &H200WM_LBUTTONDOWN = &H201WM_LBUTTONUP = &H202WM_LBUTTONDBLCLK = &H203WM_RBUTTONDOWN = &H204WM_RBUTTONUP = &H205WM_RBUTTONDBLCLK = &H206WM_MBUTTONDOWN = &H207WM_MBUTTONUP = &H208WM_MBUTTONDBLCLK = &H209'#if (_WIN32_WINNT > = 0x0400) || (_WIN32_WINDOWS > 0x0400) WM_MOUSEWHEEL = &H20AWM_MOUSELAST = &H20A'#Else' WM_MOUSELAST = &H209'#endif /* if (_WIN32_WINNT < 0x0400) */'#if(_WIN32_WINNT > = 0x0400)'#define WHEEL_DELTA 120 /* Value for rolling one detent */'#endif /* _WIN32_WINNT > = 0x0400 */'#if(_WIN32_WINNT > = 0x0400)'#define WHEEL_PAGESCROLL (UINT_MAX) /* Scroll on e page */'#endif /* _WIN32_WINNT > = 0x0400 */WM_PARENTNOTIFY = &H210WM_ENTERMENULOOP = &H211WM_EXITMENULOOP = &H212'#if(WINVER > = 0x0400)WM_NEXTMENU = &H213'// end_r_winuserWM_DEVICECHANGE = &H219'#endif /* WINVER > = 0x0400 */WM_MDICREATE = &H220WM_MDIDESTROY = &H221WM_MDIACTIVATE = &H222WM_MDIRESTORE = &H223WM_MDINEXT = &H224WM_MDIMAXIMIZE = &H225WM_MDITILE = &H226WM_MDICASCADE = &H227WM_MDIICONARRANGE = &H228WM_MDIGETACTIVE = &H229WM_MDISETMENU = &H230WM_ENTERSIZEMOVE = &H231WM_EXITSIZEMOVE = &H232WM_DROPFILES = &H233WM_MDIREFRESHMENU = &H234'#if(WINVER > = 0x0400)WM_IME_SETCONTEXT = &H281WM_IME_NOTIFY = &H282WM_IME_CONTROL = &H283WM_IME_COMPOSITIONFULL = &H284WM_IME_SELECT = &H285WM_IME_CHAR = &H286'#endif /* WINVER > = 0x0400 */'#if(WINVER > = 0x0500)WM_IME_REQUEST = &H288'#endif /* WINVER > = 0x0500 */'#if(WINVER > = 0x0400)WM_IME_KEYDOWN = &H290WM_IME_KEYUP = &H291'#endif /* WINVER > = 0x0400 */'#if(_WIN32_WINNT > = 0x0400)WM_MOUSEHOVER = &H2A1WM_MOUSELEAVE = &H2A3'#endif /* _WIN32_WINNT > = 0x0400 */WM_CUT = &H300WM_COPY = &H301WM_PASTE = &H302WM_CLEAR = &H303WM_UNDO = &H304WM_RENDERFORMAT = &H305WM_RENDERALLFORMATS = &H306WM_DESTROYCLIPBOARD = &H307WM_DRAWCLIPBOARD = &H308WM_PAINTCLIPBOARD = &H309WM_VSCROLLCLIPBOARD = &H30AWM_SIZECLIPBOARD = &H30BWM_ASKCBFORMATNAME = &H30CWM_CHANGECBCHAIN = &H30DWM_HSCROLLCLIPBOARD = &H30EWM_QUERYNEWPALETTE = &H30FWM_PALETTEISCHANGING = &H310WM_PALETTECHANGED = &H311WM_HOTKEY = &H312'#if(WINVER > = 0x0400)WM_PRINT = &H317WM_PRINTCLIENT = &H318WM_HANDHELDFIRST = &H358WM_HANDHELDLAST = &H35FWM_AFXFIRST = &H360WM_AFXLAST = &H37F'#endif /* WINVER > = 0x0400 */WM_PENWINFIRST = &H380WM_PENWINLAST = &H38FWM_USER = &H400Public Enum eWM_MsgWM_NULL = &H0WM_CREATE = &H1WM_DESTROY = &H2WM_MOVE = &H3WM_SIZE = &H5WM_ACTIVATE = &H6WM_SETFOCUS = &H7WM_KILLFOCUS = &H8WM_USER = &H400End Enum九、GlobalMemoryStatus十、GetSystemMenu十一、GetMenuItemInfo十二、SetMenuItemInfo十三、SetCursorPos十四、SetWindowPos十五、GetUserName。
API函数详解

API函数详解摘要:什么是API你不学API,你大概将停留在初级水平,无法往上攀登API文本游览器什么时候使用什么函数,什么时候使用什么结构类型,什么时候使用什么常数一些API函数集正文:API函数详解(转载自红尘如烟)标签:首先,有必要向大家讲一讲,什么是API。
所谓API本来是为C和C++程序员写的。
API说来说去,就是一种函数,他们包含在一个附加名为DLL的动态连接库文件中。
用标准的定义来讲,API就是Windows的32位应用程序编程接口,是一系列很复杂的函数,消息和结构,它使编程人员可以用不同类型的编程语言编制出的运行在Windows95和Wi ndows NT操作系统上的应用程序。
可以说,如果你曾经学过VC,那么API对你来说不是什么问题。
但是如果你没有学过VC,或者你对Windows95的结构体系不熟悉,那么可以说,学习API将是一件很辛苦的事情。
如果你打开WINDOWS的SYSTEM文件夹,你可以发现其中有很多附加名为DLL的文件。
一个DLL中包含的API函数并不只是一个,数十个,甚至是数百个。
我们能都掌握它嘛?回答是否定的∶不可能掌握。
但实际上,我们真的没必要都掌握,只要重点掌握Wi ndos系统本身自带的API函数就可以了。
但,在其中还应当抛开掉同VB本身自有的函数重复的函数。
如,VB的etAttr命令可以获得文件属性,SetAttr可以设置文件属性。
对A PI来讲也有对应的函数GetFileAttributes和SetFileAttributes,性能都差不多。
如此地一算,剩下来的也就5、600个。
是的,也不少。
但,我可以敢跟你说,只要你熟悉地掌握100个,那么你的编程水平比现在高出至少要两倍。
尽管人们说VB和WINDOWS具有密切的关系,但我认为,API更接近WINDOWS。
如果你学会了API,首要的收获便是对W INDOWS体系结构的认识。
这个收获是来自不易的。
如果你不依靠API会怎么样?我可以跟你说,绝大多是高级编程书本(当然这不是书的名程叫高级而高级的,而是在一开始的《本书内容》中指明《本书的阅读对象是具有一定V B基础的读者》的那些书),首先提的问题一般大都是从API开始。
API函数大全

waveInAddBuffer 向波形输入设备添加一个输入缓冲区WaveInClose 关闭指定的波形输入设置waveInGetDevCaps 查询指定的波形输入设备以确定其性能waveInGetErrorText 检取由指定的错误代码标识的文本说明waveInGetID 获取指定的波形输入设备的标识符waveInGetNumDevs 返回系统中存在的波形输入设备的数量waveInGetPosition 检取指定波形输入设备的当前位置waveInMessage 发送一条消息给波形输入设备的驱动器waveInOpen 为录音而打开一个波形输入设备waveInPrepareHeader 为波形输入准备一个输入缓冲区waveInReset 停止给定的波形输入设备的输入,且将当前位置清零waveInStart 启动在指定的波形输入设备的输入waveInStop 停止在指定的波形输入设备上的输入waveInUnprepareHeader 清除由waveInPrepareHeader函数实现的准备waveOutBreakLoop 中断给定的波形输出设备上一个循环,并允许播放驱动器列表中的下一个块waveOutClose 关闭指定的波形输出设备waveOutGetDevCaps 查询一个指定的波形输出设备以确定其性能waveOutGetErrorText 检取由指定的错误代码标识的文本说明waveOutGetID 检取指定的波形输出设备的标识符waveOutGetNumDevs 检取系统中存在的波形输出设备的数量waveOutGetPitch 查询一个波形输出设备的当前音调设置waveOutGetPlaybackRate 查询一个波形输出设备当前播放的速度waveOutGetPosition 检取指定波形输出设备的当前播放位置waveOutGetVolume 查询指定波形输出设备的当前音量设置waveOutMessage 发送一条消息给一个波形输出设备的驱动器waveOutOpen 为播放打开一个波形输出设备waveOutPause 暂停指定波形输出设备上的播放waveOutPrepareHeader 为播放准备一个波形缓冲区waveOutRestart 重新启动一个被暂停的波形输出设备waveOutSetPitch 设置一个波形输出设备的音调waveOutSetPlaybackRate 设置指定波形输出设备的速度waveOutSetV olume 设置指定的波形输出设备的音量waveOutUnprepareHeader 清除由waveOutPrepareHeader函数实现的准备waveOutWrite 向指定的波形输出设备发送一个数据块易语言中这些声音API调用:.版本2.DLL命令获取输入设备ID, 整数型, "winmm.dll", "waveInGetID", , 成功返回0.参数hWaveIn, 整数型, , 获取输入设备句柄.参数lpuDeviceID, 整数型, 传址, 接受ID 的变量的指针.DLL命令获取声音输入设备数量, 整数型, "winmm.dll", "waveInGetNumDevs", , 无参数; 返回波形输入设备的数目.DLL命令获取声音设备输入位置, 整数型, "winmm.dll", "waveInGetPosition", , 成功返回0 .参数hWaveIn, 整数型, , 获取输入设备句柄.参数lpInfo, MMTIME, 传址, TMMTime 结构的指针.参数uSize, 整数型, , TMMTime 结构大小.DLL命令向声音输入设备发送信息, 整数型, "winmm.dll", "waveInMessage", , 将由设备给返回值.参数hWaveIn, 整数型, , 设备句柄.参数uMessage, 整数型, , 消息.参数dw1, 整数型, , 消息参数.参数dw2, 整数型, , 消息参数.DLL命令打开波形输入设备, 整数型, "winmm.dll", "waveInOpen", , 成功返回0.参数lphWaveIn, 整数型, , 用于返回设备句柄的指针; 如果dwFlags=WA VE_FORMA T_QUERY, 这里应是nil.参数uDeviceID, 整数型, , 设备ID; 可以指定为: W A VE_MAPPER, 这样函数会根据给定的波形格式选择合适的设备.参数lpFormat, WA VEFORMA T, 传址, TWaveFormat 结构的指针; TWaveFormat 包含要申请的波形格式.参数dwCallback, 整数型, , 回调函数地址或窗口句柄; 若不使用回调机制, 设为nil.参数dwInstance, 整数型, , 给回调函数的实例数据; 不用于窗口.参数dwFlags, 整数型, , 打开选项.DLL命令预备声音输入缓冲区, 整数型, "winmm.dll", "waveInPrepareHeader", , 为波形输入准备一个缓冲区成功返回0.参数hWaveIn, 整数型, , 设备句柄.参数lpWaveInHdr, WA VEHDR, 传址, TWaveHdr 结构的指针.参数uSize, 整数型, , TWaveHdr 结构大小.DLL命令停止声音输入设备工作, 整数型, "winmm.dll", "waveInReset", , 成功返回0 .参数hWaveIn, 整数型, , 输入设备句柄.DLL命令启动声音输入, , "winmm.dll", "waveInStart", , 成功返回0.参数hWaveIn, 整数型, , 设备句柄.DLL命令停止声音输入, 整数型, "winmm.dll", "waveInStop", , 成功返回0.参数hWaveIn, 整数型, , 设备句柄.DLL命令清除预备的声音文件头, 整数型, "winmm.dll", "waveInUnprepareHeader", , 清除由waveInPrepareHeader 完成的准备;成功返回0提示: 设备写满缓冲区返回给程序后, 须调用此函数;释放(GlobalFree)缓冲区前, 须调用此函数;取消一个尚未准备的缓冲区将无效, 但函数返回0 .参数hWaveIn, 整数型, , 获取设备句柄.参数lpWaveInHdr, WA VEHDR, 传址, TWaveHdr 结构的指针.参数uSize, 整数型, , TWaveHdr 结构大小.DLL命令中断声音输出循环, 整数型, "winmm.dll", "waveOutBreakLoop", , 提示: 循环是由saveOutWrite 传递的TWaveHdr 结构的dwLoop 和dwFlags 控制的; dwFlags 的WHDR_BEGINLOOP、WHDR_ENDLOOP 标识循环的开始和结束数据块;在同一数据块上循环, 应同时指定这两个标志;循环次数dwLoops 应该在开始块上指定;循环终止前, 组成循环体的块一定要播放完;当无播放内容或循环设定失败时, 函数也能返回0..参数hWaveIn, 整数型, , 设备句柄.DLL命令关闭声音输出设备, 整数型, "winmm.dll", "waveOutClose", , 若正在播放, 应先调用waveOutReset 终止播放, 然后再关闭, 不然会失败.成功返回0.参数hWaveIn, 整数型, , 获取输入设备句柄.DLL命令获取声音输出设备性能, 整数型, "winmm.dll", "waveOutGetDevCaps", , 成功返回0 .参数uDeviceID, 整数型, , 获取输入设备句柄.参数lpCaps, W A VEOUTCAPS, 传址, 接受ID 的变量的指针.参数uSize, 整数型.DLL命令获取声音出错文本, 整数型, "winmm.dll", "waveOutGetErrorText", , 成功返回0 .参数err, 整数型, , 错误号.参数lpText, 文本型, , 缓冲区.参数uSize, 整数型, , 缓冲区大小.DLL命令获取声音输出设备ID, 整数型, "winmm.dll", "waveOutGetID", , 成功返回0 .参数hWaveOut, 整数型, , 设备句柄.参数lpuDeviceID, 整数型, 传址, 接受ID 的变量的指针.DLL命令获取声音输出设备数量, 整数型, "winmm.dll", "waveOutGetNumDevs", , 无参数; 返回波形输出设备的数目.DLL命令获取声音输出的强度, 整数型, "winmm.dll", "waveOutGetPitch", , 成功返回0 .参数hWaveOut, 整数型, , 设备句柄.参数lpdwPitch, 整数型, 传址, 存放音高值的变量的指针.DLL命令获取声音回放率, 整数型, "winmm.dll", "waveOutGetPlaybackRate", , 获取输出设备当前的播放速度设置成功返回0.参数hWaveOut, 整数型, , 设备句柄.参数lpdwRate, 整数型, 传址, 存放速度值的变量的指针.DLL命令获取声音回放位置, 整数型, "winmm.dll", "waveOutGetPosition", , 获取输出设备当前的播放位置成功返回0.参数hWaveOut, 整数型, , 设备句柄.参数lpInfo, MMTIME, 传址, TMMTime 结构的指针, 用于返回播放位置.参数uSize, 整数型, , TMMTime 结构的大小, 以字节为单位.DLL命令获取声音音量, 整数型, "winmm.dll", "waveOutGetV olume".参数uDeviceID, 整数型, , 设备句柄.参数lpdwV olume, 整数型, 传址, 存放音量值的变量的指针.DLL命令向声音输出设备发送消息, 整数型, "winmm.dll", "waveOutMessage", , 向波形输出设备发送消息.参数hWaveOut, 整数型, , 设备句柄.参数msg, 整数型, , 消息.参数dw1, 整数型, , 消息参数.参数dw2, 整数型, , 消息参数.DLL命令打开声音输出设备, 整数型, "winmm.dll", "waveOutOpen", , 成功返回0.参数lphWaveOut, 整数型, , 用于返回设备句柄的指针; 如果dwFlags=WA VE_FORMA T_QUERY, 这里应是nil.参数uDeviceID, 整数型, , 设备ID; 可以指定为: W A VE_MAPPER(-1), 这样函数会根据给定的波形格式选择合适的设备.参数lpFormat, WA VEFORMA T, 传址, TWaveFormat 结构的指针; TWaveFormat 包含要申请的波形格式.参数dwCallback, 整数型, , 回调函数地址或窗口句柄; 若不使用回调机制, 设为nil.参数dwInstance, 整数型, , 给回调函数的实例数据; 不用于窗口.参数dwFlags, 整数型, , 打开选项.DLL命令预备声音回放数据块, 整数型, "winmm.dll", "waveOutPrepareHeade", , 成功返回0 .参数hWaveOut, 整数型, , 设备句柄.参数lpWaveOutHdr, WA VEHDR, 传址, TWaveHdr 结构的指针.参数uSize, 整数型, , TWaveHdr 结构大小.DLL命令停止声音回放, 整数型, "winmm.dll", "waveOutReset", , 成功返回0 提示: 函数会终止输入, 位置清0; 放弃未处理的缓冲区并返回给程序.参数hWaveOut, 整数型, , 设备句柄.DLL命令重开始声音回放, 整数型, "winmm.dll", "waveOutRestart", , 重新启动一个被暂停的输出设备成功返回0.参数hWaveOut, 整数型, , 设备句柄.DLL命令设置波形输出强度, 整数型, "winmm.dll", "waveOutSetPitch", , 设置输出设备的音调设置(音高的倍数值)修改音高不会改变播放速度、采样速度和播放时间, 但不是所有设备都支持.提示: 参数dwPitch 虽然是 4 字节的正整数, 但表示的是个小数;两个高位表示整数部分, 两个低位表示小数部分;$8000 表示一半, $4000 表示四分之一;譬如: $00010000 表示 1.0, 说明音高没变; $000F8000, 表示15.5 倍;修改音高不会改变播放速度、采样速度和播放时间, 但不是所有设备都支持. 成功返回0.参数hWaveOut, 整数型, , 设备句柄.参数dwPitch, 整数型, , 存放音高值的变量.DLL命令清除预备声音数据块, 整数型, "winmm.dll", "waveOutUnprepareHeader", , 清除由waveOutPrepareHeader 完成的准备提示: 设备使用完数据块后, 须调用此函数;释放(GlobalFree)缓冲区前, 须调用此函数;取消一个尚未准备的缓冲区将无效, 但函数返回0.参数hWaveOut, 整数型, , 设备句柄.参数lpWaveOutHdr, WA VEHDR, 传址, TWaveHdr 结构的指针.参数uSize, 整数型, , TWaveHdr 结构大小.DLL命令写入声音输出设备, 整数型, "winmm.dll", "waveOutWrite", , 向输出设备发送一个数据块提示: 把数据缓冲区传给waveOutWrite 之前, 必须使用waveOutPrepareHeader 准备该缓冲区;若未调用waveOutPause 函数暂停设备, 则第一次把数据块发送给设备时即开始播放. 成功返回0 .参数hWaveOut, 整数型, , 设备句柄.参数lpWaveOutHdr, WA VEHDR, 传址, TWaveHdr 结构的指针.参数uSize, 整数型, , TWaveHdr 结构大小.DLL命令暂停声音回放, 整数型, "winmm.dll", "waveOutPause".参数hWaveOut, 整数型.DLL命令设置回放率, 整数型, "winmm.dll", "waveOutSetPlaybackRate".参数hWaveOut, 整数型.参数dwRate, 整数型.DLL命令设置输出音量, 整数型, "winmm.dll", "waveOutSetV olume".参数uDeviceID, 整数型.参数dwV olume, 整数型.DLL命令向声音输入设备发送缓冲区, 整数型, "winmm.dll", "waveInAddBuffer".参数hWaveIn, 整数型.参数lpWaveInHdr, WA VEHDR.参数uSize, 整数型.DLL命令播放多媒体, 整数型, "winmm.dll", "mciSendStringA".参数命令, 文本型.参数参数1, 文本型.参数参数2, 整数型.参数参数3, 整数型。
常用系统函数介绍

常用系统函数介绍系统函数是很多编程语言中的关键部分,它们提供了一系列强大的功能来处理各种任务。
在本文中,我将介绍一些常用的系统函数,以及它们的功能和用法。
1. print函数print函数是一种常见的用于输出信息的系统函数。
它可以接受一个或多个参数,并将其打印到标准输出。
例如,我们可以使用print函数来输出一条消息:```print("Hello World!")```2. input函数input函数用于接受用户输入的数据。
它可以显示一个提示消息,并等待用户输入信息,然后将输入信息作为返回值返回。
例如,我们可以使用input函数来获取用户的姓名:```name = input("Please enter your name: ")```3. len函数len函数用于获取指定对象的长度或大小。
它可以用于字符串、列表、元组等各种数据结构。
例如,我们可以使用len函数来获取一个字符串的长度:```str = "Hello World!"length = len(str)print(length) # 输出:12```4. range函数range函数用于生成一个指定范围内的整数序列。
它可以接受一个或多个参数,并根据参数的不同生成不同类型的序列。
例如,我们可以使用range函数生成一个从0到9的整数序列:```for i in range(10):print(i) # 输出:0, 1, 2, 3, 4, 5, 6, 7, 8, 9```5. type函数type函数用于获取指定对象的类型。
它可以返回一个字符串,表示对象所属的类型。
例如,我们可以使用type函数来判断一个变量的类型:```print(type(x)) # 输出:<class 'int'>```6. str函数str函数用于将指定对象转换为字符串类型。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
常用API函数分类:打印函数、文本和字体函数
AbortDoc取消一份文档的打印
AbortPrinter删除与一台打印机关联在一起的缓冲文件
AddForm为打印机的表单列表添加一个新表单
AddJob用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。
它也会为作业分配一个作业编号
AddMonitor为系统添加一个打印机监视器
AddPort启动"添加端口"对话框,允许用户在系统可用端口列表中加入一个新端口AddPrinter在系统中添加一台新打印机
AddPrinterConnection连接指定的打印机
AddPrinterDriver为指定的系统添加一个打印驱动程序
AddPrintProcessor为指定的系统添加一个打印处理器
AddPrintProvidor为系统添加一个打印供应商
AdvancedDocumentProperties启动打印机文档设置对话框
ClosePrinter关闭一个打开的打印机对象
ConfigurePort针对指定的端口,启动一个端口配置对话框
ConnectToPrinterDlg启动连接打印机对话框,用它同访问网络的打印机连接
DeleteForm从打印机可用表单列表中删除一个表单
DeleteMonitor删除指定的打印监视器
DeletePort启动"删除端口"对话框,允许用户从当前系统删除一个端口
DeletePrinter将指定的打印机标志为从系统中删除
DeletePrinterConnection删除与指定打印机的连接
DeletePrinterDriver从系统删除一个打印机驱动程序
DeletePrintProcessor从指定系统删除一个打印处理器
DeletePrintProvidor从系统中删除一个打印供应商
DeviceCapabilities利用这个函数可获得与一个设备的能力有关的信息DocumentProperties打印机配置控制函数
EndDocAPI结束一个成功的打印作业
EndDocPrinter在后台打印程序的级别指定一个文档的结束
EndPage用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页EndPagePrinter指定一个页在打印作业中的结尾
EnumForms枚举一台打印机可用的表单
EnumJobs枚举打印队列中的作业
EnumMonitors枚举可用的打印监视器
EnumPorts枚举一个系统可用的端口
EnumPrinterDrivers枚举指定系统中已安装的打印机驱动程序
EnumPrinters枚举系统中安装的打印机
EnumPrintProcessorDatatypes枚举由一个打印处理器支持的数据类型EnumPrintProcessors枚举系统中可用的打印处理器
Escape设备控制函数
FindClosePrinterChangeNotification关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象
FindFirstPrinterChangeNotification创建一个新的改变通告对象,以便我们注意打印机状态的
各种变化
FindNextPrinterChangeNotification用这个函数判断触发一次打印机改变通告信号的原因FreePrinterNotifyInfo释放由FindNextPrinterChangeNotification函数分配的一个缓冲区GetForm取得与指定表单有关的信息
GetJob获取与指定作业有关的信息
GetPrinter取得与指定打印机有关的信息
GetPrinterData为打印机设置注册表配置信息
GetPrinterDriver针对指定的打印机,获取与打印机驱动程序有关的信息GetPrinterDriverDirectory判断指定系统中包含了打印机驱动程序的目录是什么GetPrintProcessorDirectory判断指定系统中包含了打印机处理器驱动程序及文件的目录OpenPrinter打开指定的打印机,并获取打印机的句柄
PrinterMessageBox在拥有指定打印作业的系统上显示一个打印机出错消息框PrinterProperties启动打印机属性对话框,以便对打印机进行配置
ReadPrinter从打印机读入数据
ResetDC重设一个设备场景
ResetPrinter改变指定打印机的默认数据类型及文档设置
ScheduleJob提交一个要打印的作业
SetAbortProc为Windows指定取消函数的地址
SetForm为指定的表单设置信息
SetJob对一个打印作业的状态进行控制
SetPrinter对一台打印机的状态进行控制
SetPrinterData设置打印机的注册表配置信息
StartDoc开始一个打印作业
StartDocPrinter在后台打印的级别启动一个新文档
StartPage打印一个新页前要先调用这个函数
StartPagePrinter在打印作业中指定一个新页的开始
WritePrinter将发送目录中的数据写入打印机
AddFontResource在Windows系统中添加一种字体资源
CreateFont用指定的属性创建一种逻辑字体
CreateFontIndirect用指定的属性创建一种逻辑字体
CreateScalableFontResource为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统
DrawText将文本描绘到指定的矩形中
DrawTextEx与DrawText相似,只是加入了更多的功能
EnumFontFamilies列举指定设备可用的字体
EnumFontFamiliesEx列举指定设备可用的字体
EnumFonts列举指定设备可用的字体
ExtTextOut经过扩展的文本描绘函数。
也请参考SetTextAlign函数GetAspectRatioFilterEx用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小
GetCharABCWidths判断TureType字体中一个或多个字符的A-B-C大小
GetCharABCWidthsFloat查询一种字体中一个或多个字符的A-B-C尺寸GetCharacterPlacement该函数用于了解如何用一个给定的字符显示一个字串GetCharWidth调查字体中一个或多个字符的宽度
GetFontData接收一种可缩放字体文件的数据
GetFontLanguageInfo返回目前选入指定设备场景中的字体的信息
GetGlyphOutline取得TureType字体中构成一个字符的曲线信息
GetKerningPairs取得指定字体的字距信息
GetOutlineTextMetrics接收与TureType字体内部特征有关的详细信息GetRasterizerCaps了解系统是否有能力支持可缩放的字体
GetTabbedTextExtent判断一个字串占据的范围,同时考虑制表站扩充的因素GetTextAlign接收一个设备场景当前的文本对齐标志
GetTextCharacterExtra判断额外字符间距的当前值
GetTextCharset接收当前选入指定设备场景的字体的字符集标识符
GetTextCharsetInfo获取与当前选定字体的字符集有关的详细信息
GetTextColor判断当前字体颜色。
通常也称为"前景色"
GetTextExtentExPoint判断要填入指定区域的字符数量。
也用一个数组装载每个字符的范围信息
GetTextExtentPoint判断一个字串的大小(范围)
GetTextFace获取一种字体的字样名
GetTextMetrics获取与选入一种设备场景的物理字体有关的信息
GrayString描绘一个以灰色显示的字串。
通常由Windows用于标识禁止状态PolyTextOut描绘一系列字串
RemoveFontResource从Windows系统中删除一种字体资源
SetMapperFlagsWindows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体
SetTextAlign设置文本对齐方式,并指定在文本输出过程中使用设备场景的当前位置SetTextCharacterExtra描绘文本的时候,指定要在字符间插入的额外间距
SetTextColor设置当前文本颜色。
这种颜色也称为"前景色"
SetTextJustification通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理
TabbedTextOut支持制表站的一个文本描绘函数
TextOut文本绘图函数
原文地址:/book/7/。