常用API函数参数
vben admin 表格api参数
vben admin 表格api参数的简要概述:
1.请求参数:
1.url:API的URL地址。
2.method:请求的方法,常见的有GET、POST、PUT、DELETE等。
3.params:传递给API的参数,可以是JSON格式的数据。
2.响应参数:
1.code:响应的状态码,通常为200表示成功,其他值表示错误或异常。
2.message:响应的消息,描述操作的结果或错误信息。
3.data:响应的数据,根据请求的操作返回相应的数据结果。
3.表格API参数:
1.table:要操作的表格名称。
2.action:要执行的操作,如查询、添加、更新、删除等。
3.where:筛选条件,用于指定查询或操作的条件。
4.order:排序规则,用于指定结果的排序方式。
5.limit:限制条件,用于指定返回结果的数量。
6.fields:指定返回的字段列表,用于限制返回的数据内容。
常用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。
返回值如果函数调用成功,返回值是正文的高度(逻辑单位)。
Windows编程常用api
Windows编程常⽤api转载⽹络⿊客常⽤WIN API函数整理⼀、进程创建进程:CreateProcess ("C:\\windows\\notepad.exe",0,0,0,0,0,0,0,&si,&pi);WinExec("notepad",SW_SHOW);ShellExecute(0,"open","notepad","c:\\a.txt","",SW_SHOW);ShellExecuteEx(&sei);遍历进程:CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);Process32First(hsnap,&pe32);Process32Next(hsnap,&pe32);终⽌进程:ExitProcess(0);TerminateProcess(hProc,0);打开进程:OpenProcess(PROCESS_ALL_ACCESS,0,pid);\获取进程ID:GetCurrentProcesssId();获取进程可执⾏⽂件路径:GetModuleFileName(NULL,buf,len);GetProcessImageFileName(hproc,buf,len);遍历进程模块信息:CreateToolhelp32Snapshot(TH32CS_SNAPMODILE,pid);Module32First(hsnap,&mdl32);Module32Next(hsnap,&mdl2);获取指定模块句柄:GetModuleHandle(“ kernel32.dll”);获取模块内函数地址:GetProcessAddr(hmdl,”MessageBox ”);动态加载DLL:LoadLibrary(“user32.dll”);卸载DLL:FreeLibrary(hDll);获取进程命令⾏参数:GetCommandLine();任何进程GetCommandLine函数地址后偏移⼀个字节后的4字节地址为命令⾏地址。
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, 整数型。
API函数大全
Api函数名函数说明 WIN16可用 WIN95可用 WINNT可用---------------------------------------------------------------------------------------------------------------AbortDoc 终止一项打印作业是是是AbortPath 终止或取消DC中的一切路径否是是AbortPrinter 删除打印机缓冲文件否是是AbortSystemShutdowna 停止系统工作否是是AccessCheck 检验客户访问权限否是是AccessCheckAndAuditAlarm 检验访问,产生声音或警报否是是ActivateKeyboardLayout 激活一个新的键盘设备否是是AddAccessAllowedAce 将ACCESS_ALLOWED_ACE加入ACL 否是是AddAccessDeniedAce 将ACCESS_DENIED_ACE加入ACL 否是是AddAce 将ACE加入一个已存在的ACL 否是是AddAtom 将一个字符串加入本地原子表是是是AddAuditAccessAce 将SYSTEM_AUDIT_ACE加入ACL 否是是AddFontR esource 将一种字体加入字体表是是是AddForm 加入一个打印机窗体否是是AddJob 启动一个打印作业否是是AddMonitor 加入一个打印机管理器否是是AddPort 加入一个打印机端口否是是AddPrintProcessor 将打印处理器复制到打印机服务器中否是是AddPrintProvidor 加入一个打印机支持器否是是AddPrinter 在打印机服务器上建立一个打印机否是是AddPrinterConnection 为当前用户建立与打印机的联系否是是AddPrinterDriver 将打印机驱动程序复制到打印机服务器中否是是AdjustTokenGroups 使能/取消令牌中的群否是是AdjustTokenPrivileges 使能/取消令牌特权否是是AdjustWindowR ect 计算所需窗口矩形的大小是是是AdjustWindowR ectEx 计算所需窗口矩形的大小是是是AdvancedDocumentProperties 进行打印机高级设置否是是AllocConsole 为当前进程建立控制台否是是AllocateAndInitializeSid 分配和初始化SID 否是是AllocateLocallyUniqueId 分配LUID 否是是AngleArc 按指定角度画弧否是是AnimatePalette 替换逻辑调色板中的项目是是是AnyPopup 标识弹出式窗口是否存在是是是AppendMenu 在菜单中加入新的项目是是是Arc 画弧是是是Arc To 画椭圆弧否是是AreAllAccessesGranted 检查所有要求的访问否是是AreAnyAccessesGranted 检查任何要求的访问否是是ArrangeI conicWindows 排列最小化的子窗口是是是AttachThreadInput 将线索彼此相连否是是auxGetDevCaps 获取附属设备容量否是是auxGetNumDevs 返回附属设备数量否是是auxGetVolume 获取当前卷设置否是是auxOutMessage 向输出设备发送消息否是是auxSetVolume 设置附属设备卷否是是BackupEventLog 将事件记录保存至后备文件否是是BackupRead 产生磁带备份读否是是BackupSeek 产生磁带备份查寻否是是BackupWrite 产生磁带备份写否是是Beep 产生一个声调否是是BeginDeferWindowPos 创建一个窗口位置结构否是是BeginPaint 准备一个画图窗是是是BeginPath 开始一个路径等级是是是BeginUpdateResource 在可执行文件中开始资源文件更新否是是BitBlt 在设备描述表间复制位图是是是BringWindowToTop 恢复重叠窗是是是BroadcastSystemMessage 否是是BuildCommDCB 向DCB中传送设备定义字符串是是是BuildCommDCBAndTimeouts 建立COMMDCB并设置超时值否是是CallMsgFilter 将消息传给消息过滤过程是是是CallNamedPipe 多管道操作否是是CallNextHookEx 调中链中的下一个挂钩过程是是是CallWindowProc 将消息传答窗口函数否是是CancelDC 取消指定DC上的任何悬而未决的操作否是是CascadeWindows 否是是ChangeClipboardChain 从剪贴板查看窗口上删除一个窗口是是是ChangeMenu 否是是ChangeServiceConfig 修改服务参数否是是CharLower 将字符或字符串变为小写否是是CharLowerBuff 将字符串变为小写否是是CharNext 转到字符串的下一个字符否是是CharPrev 转到字符串的上一个字符否是是CharToOem 把字符串转换成OEM字符否是是CharToOemBuff 把字符串转换成OEM字符否是是CharUpper 将字符或字符串变为大写否是是CharUpperBuff 将字符串变为小写否是是CheckColorsInGamut 检查设备调色板中是否有色彩否是是CheckDlgButton 用对话按钮修改复选标记是是是CheckMenuI tem 修改菜单项的复选标记属性是是是CheckMenuRadioItem 否是是CheckRadioButton 用单选按钮放置一个复选标记是是是ChildWindowFromPoint 确定包含有点的窗口是是是ChildWindowFromPointEx 否是是ChooseColor 建立一个色彩选择对话框否是是ChooseFont 建立一个字体选择对话框否是是ChoosePixelFormat 否是是Chord 画一条弦是是是ClearCommBreak 恢复字符传输是是是ClearCommError 允许出错后进行通信否是是ClearEventLog 消除事件记录否是是ClientToScreen 将客户点转换成屏幕坐标是是是ClipCursor 将光标限制在矩形内是是是CloseClipboard 关闭剪贴板是是是CloseDesktop 否是是CloseDriver 光闭可装入的多媒体驱动程序是是是CloseEnhMetaFile 光闭增强型图元文件DC 否是是CloseEventLog 光闭事件记录句柄否是是CloseFigure 光闭路径中的一个数否是是CloseHandle 关闭打开的对象句柄否是是CloseMetaFile 关闭WINDOWS图元文件DC 是是是ClosePrinter 关闭打开的打印机否是是CloseServiceHandle 关闭Service Control Manager对象否是是CloseWindow 最小化窗口是是是CloseWindowStation 否是是ColorMatchToTarget 控件预览设备描述表否是是CombineRgn 将两个区域合成一个区域是是是CombineTransform 将两个变换式结合在一起否是是CommConfigDialog 否是是CommDlgExtendedError 返回出错数据否是是CommandLineToArgv 否是是CompareFileTime 比较两个64位文件时间否是是CompareString 比较两个局部指定字符串否是是ConfigurePort 配置打印机端口否是是ConnectNamedPipe 等待要连接的客户机否是是ConnectToPrinterDlg 显示浏览对话并连接网络打印机否是是ContinueDebugEvent 使调试线索继续否是是ControlService 向服务器发送控件否是是ConvertDefaultLocale 将缺省局部转换为实际的局部值否是是CopyAcceleratorTable 复制一个加速表否是是CopyCursor 复制一个光标是是是CopyEnhMetaFile 复制增强型图元文件否是是CopyFile 复制文件否是是CopyIcon 复制图标是是是CopyImage 否是是CopyLZFile 否是是CopyMetaFile 复制Windows图元文件是是是CopyRect 复制矩形大小是是是CopySid 将SID复制到缓冲区中否是是CountClipboardFormats 返回剪贴板格式的数量是是是CreateAcceleratorTable 建立加速表否是是CreateBitmap 建立独立于设备的内存位图是是是CreateBitmapIndirect 用BITMAP结构建立位图是是是CreateBrushIndirect 用指定属性建立一个刷子是是是CreateCaret 为系统脱字号建立新的形状是是是CreateColorSpace 建立逻辑色影区域否是是CreateCompatibleBitmap 建立与DC相兼容的位图是是是CreateCompatibleDC 建立与指定DC相兼容的DC 是是是CreateConsoleScreenBuffer 将句柄返回给新的屏幕缓冲区否是是CreateCursor 用指定的尺寸建立一个光标是是是CreateDC 建立设备描述表是是是CreateDIBPatternBrush 从DIB中建立图案刷子是是是CreateDIBPatternBrushPt 从位图中建立逻辑刷子否是是CreateDIBSection 否是是CreateDIBitmap 从DIB spec中建立位图句柄是是是CreateDesktop 否是是CreateDialogIndirectParam 从内存模块中建立非模态对话框否是是CreateDialogParam 建立非模态对话框否是是CreateDirectory 建立一个新目录否是是CreateDirectoryEx 用模板属性建立一个目录否是是CreateDiscardableBitmap 建立可放弃位图是是是CreateEllipticRgn 建立椭圆区域是是是CreateEllipticRgnIndirect 建立椭圆区域是是是CreateEnhMetaFile 建立增强型图元文件DC 否是是CreateEvent 返回新事件对象一个句柄否是是CreateFile 建立、打开或截断文件否是是CreateFileMapping 返回新文件映像对象一个句柄否是是CreateFont 建立逻辑字体是是是CreateFontIndirect 用LOGFONT结构建立字体是是是CreateHalftonePalette 为设备描述表建立中间色调调色板否是是CreateHatchBrush 建立影线刷子是是是CreateIC 建立信息上下文是是是CreateIcon 建立有指定属性的图标是是是CreateIconFromResource 建立图标或光标否是是CreateIconIndirect 建立图标或光标否是是CreateIoCompletionPort 否是是CreateMDIWindow 建立新的MDI窗口否是是CreateMailslot 建立Mailso lt 否是是CreateMenu 建立菜单是是是CreateMetaFile 建立WINDOWS图元DC 是是是CreateMutex 将句柄返回给MUTEX对象否是是CreateNamedPipe 建立命名管道实例否是是CreatePalette 建立逻辑色彩调色板是是是CreatePatternBrush 从位图中建立图案刷子是是是CreatePen 建立逻辑画笔是是是CreatePenIndirect 用LOGPEN结构建立画笔是是是CreatePipe 建立匿名管道否是是CreatePolyPolygonRgn 建立由多边形组成的区域是是是CreatePolygonRgn 建立多边形区域是是是CreatePopupMenu 建立弹出式菜单是是是CreatePrivateObjectSecurity 分配并初始化保护SD 否是是CreateProcess 建立新的进程和线索对象否是是CreateProcessAsUser 建立指定用户的新进程否是是CreateRectRgn 建立矩形区域是是是CreateRectRgnIndirect 用RECT结构建立一个区域是是是CreateRemoteThread 在另一进程中建立线索否是是CreateRoundRectRgn 建立圆角矩形是是是CreateScalableFontResource 建立带字体信息的资源文件是是是CreateSemaphore 将句柄返回给新的信号量否是是CreateService 建立服务对象否是是CreateSolidBrush 用指定颜色建立实心刷子是是是CreateTapeParti t ion 建立新的磁带分区否是是CreateThread 建立新的线索否是是CreateWindowEx 建立窗口是是是DPtoLP 将设备坐标转换位逻辑坐标是是是DdeAbandonTransaction 取消异步交互否是是DdeAccessData 访问DDE数据对象否是是DdeAddData 向DDE数据对象中加入数据否是是DdeClientTransaction 开始DDE数据事务否是是DdeCmpStringHandles 比较两个DDE字符串句柄否是是DdeConnect 建立与服务器的对话否是是DdeConnectList 建立多个DDE对话否是是DdeCreateDataHandle 建立DDE数据句柄否是是DdeCreateStringHandle 建立DDE字符串句柄否是是DdeDisconnect 终止DDE对话否是是DdeDisconnectList 取消DDE对话表列否是是DdeEnableCallback 使能或取消一个或多个DDE对话否是是DdeFreeDataHandle 释放DDE数据对象否是是DdeFreeStringHandle 释放DDE字符串句柄否是是DdeGetData 将数据从DDE数据对象中复制到缓冲区否是是DdeGetLastError 返回由DDEML函数设置的出错代码否是是DdeImpersonateClient DDE服务器模拟客户机否是是DdeInitialize 用DDEML登记应用程序否是是DdeKeepStringHandle 为字符串句柄增加可用记录否是是DdeNameService 登记取消服务器名称否是是DdePostAdvise 提示服务器向客户机发送建议数据否是是DdeQueryConvInfo 返回关于DDE对话的信息否是是DdeQueryNextServer 在对话表列中获得下一个句柄否是是DdeQueryString 将字符串句柄文本复制到缓冲区否是是DdeReconnect 重建DDE对话否是是DdeSetQualityOfService 指明服务的DDE质量否是是DdeSetUserHandle 将用户定义句柄与事务建立关联否是是DdeUnaccessData 释放DDE数据对象否是是DdeUninitialize 释放应用程序的DDEML资源否是是DebugActiveProcess 连接调试进程否是是DebugBreak 建立断点是是是DefDlgProc 提供缺省窗口消息进程是是是DefDriverProc 定义缺省消息处理器是是是DefFrameProc 缺省MDI框架窗口消息进程是是是DefMDIChildProc 缺省MDI子窗口消息进程是是是DefWindowProc 调用缺省窗口过程是是是DeferWindowPos 更新窗口位置结构是是是DefineDosDevice 定义、重定义或删除DOS的设备名否是是DeleteAce 从已存在的ACL中删除ACE 否是是DeleteAtom 删除一个原子是是是DeleteColorSpace 删除指定色彩空间否是是DeleteCriticalSection 删除临界部分否是是DeleteDC 删除设备描述表是是是DeleteEnhMetaFile 取消增强图元文件句柄否是是DeleteFile 删除文件否是是DeleteForm 删除打印机窗体层差否是是DeleteMenu 删除菜单项是是是DeleteMetaFile 取消WINDOWS图元文件句柄是是是DeleteMonitor 删除打印机监视器否是是DeleteObject 从内存删除一个对象是是是DeletePort 删除打印机端口否是是DeletePrintProcessor 删除打印机处理器否是是DeletePrintProvidor 删除打印机提供者否是是DeletePrinter 删除打印机服务器上的打印机否是是DeletePrinterConnection 删除与打印机的连接否是是DeletePrinterDriver 删除打印机驱动程序否是是DeleteService 从SC MANAGER数据库中删除服务否是是DeregisterEventSource 光闭事件句柄否是是DescribePixelFormat 否是是DestroyAcceleratorTable 取消加速表否是是DestroyCaret 取消当前脱字号是是是DestroyCursor 取消CREATECURSOR建立的光标是是是DestroyI con 取消由CREATEICON建立的图标是是是DestroyMenu 取消菜单并释放内存是是是DestroyPrivateObjectSecurity 删除被保护的服务器对象的SD 否是是DestroyWindow 取消窗口是是是DeviceCapabilities 返回设备驱动程序的功能否是是DeviceIoControl 直接调用驱动程序否是是DialogBoxIndirectParam 从内存模块中建立对话框否是是DisableThreadLibraryCalls 否是是DisconnectNamedPipe 切断命名管道的服务器终端否是是DispatchMessage 向窗口发送消息是是是DlgDirList 填充目录列表框是是是DlgDirListComboBox 填充目录列表框是是是DlgDirSelectComboBoxEx 从目录列表框中返回用户选择是是是DlgDirSelectEx 从目录列表框中返回用户选择是是是DoEnvironmentSubst 否是是DocumentProperties 配置打印机设置否是是DosDateTimeToFileTime 将MS-DOS日期时间转换为64位格式否是是DragAcceptFiles 登记窗口是否接受托动文件的内容否是是DragDetect 否是是DragFinish 释放分配用于托动文件的内容否是是DragObject 否是是DragQueryFile 返回托动的文件名否是是DragQueryPoint 返回鼠标位置否是是DrawAnimatedRects 否是是DrawCaption 否是是DrawEdge 否是是DrawEscape 实现非GDI可画图设备方法否是是DrawFocusRect 用焦点风格画矩形是是是DrawFrameControl 否是是DrawIcon 在指定设备描述表中画一个图标是是是DrawIconEx 否是是DrawMenuBar 重显示菜单栏是是是DrawState 否是是DrawText 在矩形中画出已格式化文本是是是DrawTextEx 否是是DrvGetModuleHandle 获得可安装驱动程序的例子句柄否是是DuplicateHandle 复制对象句柄否是是DuplicateIcon 否是是DuplicateToken 复制访问令牌否是是Ellipse 画椭圆是是是EmptyClipboard 清空剪贴板并释放数据句柄是是是EnableMenuItem 使能、取消或使菜单项不可激活是是是EnableScrollBar 使能、取消滚动条否是是EnableWindow 设备窗口使能状态是是是EndDeferWindowPos 更新窗口的位置及大小是是是EndDialog 隐藏对话框是是是EndDoc 结束打印作业是是是EndDocPrinter 结束打印作业否是是EndPage 结束一页是是是EndPagePrinter 结束打印页否是是EndPaint 在指定窗口中标记图画结尾标志是是是EndPath 结束路径否是是EndUpdateR esource 在可执行文件中结束资源更新否是是EnterCriticalSection 加入临界部分否是是EnumCalendarInfo 否是是EnumChildWindows 将子窗口句柄传给回调函数否是是EnumClipboardFormats 返回CLIPBOARD格式是是是EnumDateFormats 枚举局部指定数据格式否是是EnumDependentServices 枚举依赖于设备的服务否是是EnumDesktopWindows 否是是EnumDesktops 否是是EnumEnhMetaFile 用增强图元文件返回GDI调用否是是EnumFontFamilies 返回指定家族的字体否是是EnumFontFamiliesEx 返回指定家族的字体否是是EnumFonts 枚举指定设备上的字体否是是EnumForms 枚举所支持的打印机窗体否是是EnumICMProfiles 枚举可用的颜色分布否是是EnumJobs 获取打印作业信息否是是EnumMetaFile 用WINDOWS图元文件返回GDI调用否是是EnumMoni t ors 枚举可用监视器否是是EnumObjects 枚举设备描述表中的画笔和刷子否是是EnumPorts 枚举可用打印机端口否是是EnumPrintProcessorDatatypes 枚举打印机所支持的数据类型否是是EnumPrintProcessors 枚举已安装的打印机处理器否是是EnumPrinterDrivers 枚举已安装的打印机驱动程序否是是EnumPrinterPropertySheets 否是是EnumPrinters 否是是EnumProps 返回窗口属性表列否是是EnumPropsEx 返回窗口属性表列否是是EnumResourceLanguages 列出语言资源否是是EnumResourceNames 列出资源名称否是是EnumResourceTypes 列出资源类型否是是EnumServicesStatus 枚举SC管理器数据库中的服务否是是EnumSystemCodePages 枚举已安装的可用系统代码页否是是EnumSystemLocales 枚举已安装的系统局部否是是EnumThreadWindows 返回线索窗口否是是EnumTimeFormats 枚举本地指定时间格式否是是EnumWindowStations 否是是EqualPrefixSid 检查两个SLD前缀是否相等否是是EqualRect 确定两矩形是否相等待是是是EqualRgn 比较两区域是否相等是是是EqualSid 检查两SLD安全ID是否相等否是是EraseTape 删除磁带的指定段否是是Escape 允许访问设备是是是EscapeCommFunction 发送扩展COMM函数是是是ExcludeClipRect 改变剪裁区是是是ExcludeUpdateRgn 从剪裁区中排斥更新区域是是是ExitProcess 退出当前进程否是是ExitThread 退出当前线索否是是ExitWindows 关闭WINDOWS 是是是ExitWindowsEx 关闭WINDOWS 否是是ExpandEnvironmentStrings 扩充环境变量字符串否是是ExtCreatePen 建立逻辑画笔否是是ExtCreateRegion 从区域数据中建立一个区域否是是ExtEscape 允许访问私有设备否是是ExtFloodFill 用当前刷子填充区域是是是ExtSelectClipRgn 选择一块区域作为剪裁区否是是ExtTextOut 在矩形区域中输出一个字符串是是是ExtractAssociatedIcon 从文件或相关EXE中获取图标句柄否是是ExtractIcon 从可执行文件中返回图标句柄(即返回HICON) 否是是ExtractIconEx 否是是FatalAppExit 结束一个应用程序否是是FatalExit 向调试者返回控件是是是FileTimeToDosDateTime 将文件时间转换为MS-DOS日期否是是FileTimeToLocalFileTime 将UTC文件时间转换成本地文件时间否是是FileTimeToSystemTime 将64位时间转换为系统时间否是是FillConsoleOutputAttribute 将属性写入屏幕缓冲区否是是FillConsoleOutputCharacter 将字符写入屏幕缓冲区否是是FillPath 填充当前路径否是是FillRect 用指定刷子填充矩形区域是是是FillRgn 用刷子填充区域是是是FindAtom 从本地原子表中返回字符串原子是是是FindClose 关闭查找文件描述表否是是FindCloseChangeNotification 光闭文件或目录修改等待否是是FindClosePrinterChangeNotification 否是是FindEnvironmentString 否是是FindExecutable 返回可执行文件名及句柄否是是FindFirstChangeNotification 设置文件或目录修改等待否是是FindFirstFile 查找第一个匹配文件否是是FindFirstFreeAce 返回指向第一个空闲ACL字节的指针否是是FindFirstPrinterChangeNotification 否是是FindNextChangeNotification 请求对下一个文件或目录变化的通知否是是FindNextFile 查找下一个匹配文件否是是FindNextPrinterChangeNotification 否是是FindResource 在模块中寻找资源是是是FindResourceEx 在模块中寻找资源否是是FindText 建立查找文本对话框否是是FindWindow 返回一个与类和窗口名相关的窗口句柄是是是FindWindowEx 否是是FixBrushOrgEx 否是是FlashWindow 使窗口闪烁一次是是是FlattenPath 将弧变为线否是是FloodFill 用当前刷子填充区域是是是FlushConsoleInputBuffer 清除控制台输入缓冲区否是是FlushFileBuffers 清除文件缓冲区否是是FlushInstructionCache 填满指令缓冲区否是是FlushViewOfFile 用映像视图填充文件否是是FoldString 变换字符串否是是FormatMessage 格式化消息字符串否是是FrameRect 用指定刷子画一个窗口边框否是是FrameRgn 在区域四周画出边框是是是FreeConsole 释放控制台否是是FreeDDElParam 释放DDE消息IPAR AM 否是是FreeEnvironmentStrings 否是是FreeLibrary 卸载库模块是是是FreeLibraryAndExitThread 否是是FreeResource 否是是FreeSid 释放SID 否是是GdiComment 向增强型图元文件中加入注释否是是GdiFlush 使当前GDI闪烁否是是GdiGetBatchLimit 返回缓冲GDI函数数量否是是GdiSetBatchLimit 设置缓冲GDI函数数量否是是GenerateConsoleCtrlEvent 向控制台进程组发送信号否是是GetACP 获取ANSI系统代码页否是是GetAce 返回指向ACL中的ACE的指针否是是GetAclInformation 返回访问控件表信息否是是GetActiveWindow 返回活动窗口句柄是是是GetArcDirection 返回弧和矩形的绘画方向否是是GetAspectRatioFilterEx 返回当前ASPECT-RATIO过滤器是是是GetAsyncKeyState 确定键的状态是是是GetAtomName 返回本地原子字符串是是是GetBinaryType 确定二进制可执行文件类型否是是GetBitmapBits 将位图复制到缓冲区否是是GetBitmapDimensionEx 返回位图宽和高否是是GetBkColor 返回当前背景色否是是GetBkMode 返回背景模式否是是GetBoundsRect 返回当前相邻矩形否是是GetBrushOrgEx 否是是GetCPInfo 获取代码页信息否是是GetCapture 否是是GetCaretBlinkTime 返回脱字号闪烁时间否是是GetCaretPos 返回当前脱字号位置否是是GetCharABCWidths 返回字符宽度否是是GetCharABCWidthsFloat 返回字符宽度否是是GetCharWidth 返回字符宽度否是是GetCharWidth32 返回字符宽度否是是GetCharWidthFloat 返回部分字符宽度否是是GetCharacterPlacement 获取字符串属性数据否是是GetClassInfo 返回窗口类信息否是是GetClassLong 返回窗口类数据否是是GetClassName 返回窗口类名称否是是GetClassWord 返回窗口类内存字否是是GetClientRect 返回窗口客户区坐标(返回窗口相对桌面坐标) 否是是GetClipBox 取剪裁区域框否是是GetClipCursor 返回限制光标的矩形的坐标否是是GetClipRgn 返回当前剪辑域否是是GetClipboardData 返回剪贴板数据的句柄否是是GetClipboardFormatName 返回登录的剪贴板格式名否是是GetClipboardOwner 返回剪贴板所有者窗口句柄否是是GetClipboardViewer 返回第一个剪贴板浏览窗口句柄否是是GetColorAdjustment 获取设备描述表调整值否是是GetColorSpace 获取指定色彩空间否是是GetCommConfig 否是是GetCommMask 返回COMM事件屏蔽否是是GetCommModemStatus 返回调制解调器控制登录值否是是GetCommProperties 返回COMM设备属性否是是GetCommState 返回COMM设备控制块否是是GetCommTimeouts 返回COMM设备超时特性值否是是GetCommandLine 返回指向命令行的指针否是是GetCompressedFileSize 否是是GetComputerName 取回当前计算机名否是是GetConsoleCP 为控制台输入获取代码页否是是GetConsoleCursorInfo 返回光标大小否是是GetConsoleMode 返回控制台输入输出模式否是是GetConsoleOutputCP 为控制台输出获取代码页否是是GetConsoleScreenBufferInfo 返回屏幕缓冲区信息否是是GetConsoleTitle 返回控制台窗口标题否是是GetCurrencyFormat 否是是GetCurrentDirectory 返回当前目录否是是GetCurrentObject 返回当前对象否是是GetCurrentPositionEx 返回逻辑单元位置否是是GetCurrentProcess 返回当前进程的句柄否是是GetCurrentProcessId 返回当前进程ID值否是是GetCurrentThread 返回当前线索的句柄否是是GetCurrentThreadId 返回当前线索ID值否是是GetCursor 返回当前光标的句柄否是是GetCursorPos 返回当前光标的位置(用来更换鼠标位置)否是是GetDC 返回窗口描述表句柄否是是GetDCEx 返回显示描述表的句柄否是是GetDCOrgEx 返回设备描述表的转换起点否是是GetDIBColorTable 否是是GetDIBits 将DIB位复制到缓冲区中否是是GetDateFormat 获取本地日期格式否是是GetDefaultCommConfig 否是是GetDesktopWindow 返回桌面窗口句柄否是是GetDeviceCaps 返回设备性能否是是GetDeviceGammaRamp 获取显示器的辉度系数否是是GetDialogBaseUnits 返回对话基础单元否是是GetDiskFreeSpace 返回空闲磁盘空间否是是GetDlgCtrlID 返回儿子窗口的ID值否是是GetDlgItem 返回对话框控件句柄( ) 否是是GetDlgItemInt 将对话框文本转换为整数否是是GetDlgItemText 返回对话框控件文本否是是GetDoubleClickTime 返回鼠标双击时间否是是GetDriveType 返回指定驱动器类型否是是GetDriverModuleHandle 返回驱动程序模块例子句柄否是是GetEnhMetaFile 建立增强图元文件否是是GetEnhMetaFileBits 将增强图元文件值复制到缓冲区否是是GetEnhMetaFileDescription 返回增强图元文件的标题及建立者否是是GetEnhMetaFileHeader 返回增强图元文件头否是是GetEnhMetaFilePaletteEntries 返回增强图元文件调色板入口否是是GetEnvironmentStrings 返回指向环境块的指针否是是GetEnvironmentVariable 返回过程环境变量否是是GetExitCodeProcess 返回过程中断代码否是是GetExitCodeThread 返回线索中断代码否是是GetExpandedName 取压缩文件的原文件名是是是GetFileAttributes 返回文件属性否是是GetFileInformationByHandle 返回文件信息否是是GetFileSecurity 获取文件或目录安全信息否是是GetFileSize 返回指定文件大小否是是GetFileTime 返回文件64位时间否是是GetFileTitle 返回文件名否是是GetFileType 返回文件类型否是是GetFileVersionInfo 返回文件的版本信息否是是GetFileVersionInfoSize 返回可用版本信息大小否是是GetFocus 返回当前焦点窗口句柄( ) 是是是GetFontData 返回字体数据是是是GetFontLanguageInfo 获取字体显示描述表的信息否是是GetForegroundWindow 返回前景窗口句柄否是是GetForm 获取打印机窗口信息否是是GetFullPathName 返回文件的路径名否是是GetGlyphOutline 取回轮廓数据是是是GetGraphicsMode 取回指定DC的图形模式否是是GetHandleInformation 否是是GetICMProfile 返回设备场景的色彩映像否是是GetIconInfo 返回图标或光标信息否是是GetInputState 确定鼠标、键盘、定时器状态是是是GetJob 获取打印作业信息否是是GetKBCodePage 获取OEM系统代码页是是是GetKernelObjectSecurity 返回内核对象SD 否是是GetKerningPairs 返回当前字体内核对是是是GetKeyNameText 返回代表键盘名字的字符串是是是GetKeyState 返回虚拟键的状态是是是GetKeyboardLayout 否是是GetKeyboardLayoutList 否是是GetKeyboardLayoutName 返回活动键盘版面名否是是GetKeyboardState 返回虚拟键盘状态是是是GetKeyboardType 返回键盘信息是是是GetLargestConsoleWindowSize 返回窗口尺寸的最大可能性否是是GetLastActivePopup 确定最近的活动弹出式窗口是是是GetLastError 返回扩充出错代码否是是GetLengthSid 返回SID长度否是是GetLocalTime 返回本地时间和日期否是是GetLocaleInfo 从记录中获取本机信息否是是GetLogColorSpace 获取逻辑色彩空间的信息否是是GetLogicalDriveStrings 返回合法驱动器字符串否是是GetLogicalDrives 指定合法驱动器否是是GetMailslotInfo 返回信箱信息否是是GetMapMode 返回映像模式是是是GetMenu 返回指定窗口的菜单句柄是是是GetMenuCheckMarkDimensions 返回缺省复选标记位图尺寸是是是GetMenuContextHelpId 否是是GetMenuDefaultItem 否是是GetMenuItemCount 返回菜单项数是是是GetMenuItemID 返回菜单项标识符是是是GetMenuItemInfo 否是是GetMenuItemRect 否是是GetMenuState 返回指定菜单项的菜单标记是是是GetMenuString 将菜单项字符串复制入缓冲区是是是GetMessage 从线索消息队列中返回一条消息是是是GetMessageExtraInfo 返回硬件消息的信息是是是GetMessagePos 返回最后消息的光标位置是是是GetMessageTime 返回最后消息的时间位置是是是GetMetaFile 建立WINDOWS图元文件是是是GetMetaFileBitsEx 将WINDOWS图元文件复制入缓冲区否是是GetMetaRgn 返回当前图元区域否是是GetMiterLimit 返回当前MITER-JOIN长度否是是GetModuleFileName 返回指定模块的路径是是是GetModuleHandle 返回指定模块的句柄是是是GetNamedPipeHandleState 返回命名管道句柄消息否是是GetNamedPipeInfo 返回命名管道句柄消息否是是GetNearestColor 返回最近的可用色彩是是是GetNearestPaletteIndex 返回最近的匹配色彩是是是GetNextDlgGroupItem 返回前或后一组控件的句柄是是是GetNextDlgTabI tem 返回前或后一个WS_TABSTOP控件是是是GetNextWindow 返回前或后一窗口管理器窗口是是是GetNumberFormat 否是是GetNumberOfConsoleInputEvents 返回控制台队列事件数否是是GetNumberOfConsoleMouseButtons 返回鼠标按钮数否是是GetNumberOfEventLogR ecords 获取事件记录中的记录数否是是GetOEMCP 获取OEM系统代码页否是是GetObject 返回对象信息是是是GetObjectType 返回对象类型否是是GetOldestEventLogR ecord 返回最早的记录数否是是GetOpenClipboardWindow 返回打开CLIPBOARD的窗口句柄是是是GetOpenFileName 建立文件名对话框否是是GetOutlineTextMetrics 返回TRUETYPE字体的公制类型是是是GetOverlappedR esult 返回最后重叠结果否是是GetPaletteEntries 返回调色板入口范围是是是GetParent 返回父口句柄是是是GetPath 返回路径中的所有直线和曲线否是是GetPixel 返回指定像素的RGB值是是是GetPixelFormat 否是是GetPolyFillMode 返回当前多边形填充模式是是是GetPrintProcessorDirectory 获取打印机驱动处理器路径否是是GetPrinter 获取打印机信息否是是GetPrinterData 获取打印机配置信息否是是GetPrinterDriver 获取打印机驱动程序信息否是是GetPrinterDriverDirectory 获取打印机驱动程序路径否是是GetPriorityClass 返回过程的优先级类否是是GetPriorityClipboardFormat 返回第一个CLIPBOARD格式是是是GetPrivateObjectSecurity 返回保护服务器对象SD 否是是GetPrivateProfileInt 从私有文件中获取整数是是是GetPrivateProfileSection 返回私有键和值否是是GetPrivateProfileString 从私有文件中获取字符串是是是GetProcAddress 返回函数地址否是是GetProcessAffinityMask 获取任务可用的处理表列否是是GetProcessHeap 获取调用过程堆句柄否是是GetProcessHeaps 否是是GetProcessShutdownParameters 返回过程停止参数否是是GetProcessTimes 获取过程计时器否是是GetProcessWindowStation 返回过程窗口站句柄否是是GetProcessWorkingSetSize 否是是GetProfileInt 从WIN.INI中获取整数是是是GetProfileSection 从WIN.INI中返回关键字和值否是是GetProfileString 从WIN.INI中获取字符串是是是GetProp 从窗口属性表列中返回数据句柄是是是GetQueueStatus 确定消息队列内容是是是GetQueuedCompletionStatus 否是是GetROP2 返回当前绘图模式是是是GetRasterizerCaps 返回系统TRUETYPE状态是是是GetRegionData 返回区域数据否是是GetRgnBox 返回区域边框矩形是是是GetSaveFileName 建立文件名保存对话框否是是GetScrollInfo 否是是GetScrollPos 返回滑块位置是是是GetScrollRange 返回滑块运动范围是是是GetSecurityDescriptorControl 取回SD校正及控制信息否是是GetSecurityDescriptorDacl 返回SD离散ACL 否是是GetSecurityDescriptorGroup 返回SD个人组信息否是是GetSecurityDescriptorLength 返回SD长度否是是GetSecurityDescriptorOwner 返回SD所有人否是是GetSecurityDescriptorSacl 返回SD系统ACL 否是是GetServiceDisplayName 获取服务显示名称否是是GetServiceKeyName 获取服务登录关键名称否是是GetShortPathName 返回文件短路径否是是GetSidIdentifierAuthority 返回ID字段地址否是是GetSidLengthR equired 返回所需SID长度否是是GetSidSubAuthori t y 返回次规范数组地址否是是GetSidSubAuthori t yCount 返回次字段地址否是是GetStartupInfo 获取当前过程的启始信息否是是GetStdHandle 返回标准I/O句柄否是是GetStockObject 返回常用画笔、刷子或字段的句柄是是是GetStretchBltMode 返回位图拉伸模式是是是GetStringTypeA 获取ANSI字符串类型否是是GetStringTypeEx 否是是GetStringTypeW 获取UNICODE字符串类型否是是GetSubMenu 返回弹出式菜单句柄是是是GetSysColor 返回显示元素色彩是是是GetSysColorBrush 否是是GetSystemDefaultLCID 获取系统缺省本地ID 否是是GetSystemDefaultLangID 获取系统缺省语言ID 否是是。
常用的API函数
第一个:FindWindow根据窗口类名或窗口标题名来获得窗口的句柄,该函数返回窗口的句柄函数的定义:HWND WINAPI FindWindow(LPCSTR lpClassName ,LPCSTR lpWindowName);第一个参数填窗口的类名,第二个填窗口的标题名,其实是不需要同时填两个参数的,也就是说,你只要知道窗口的类名或窗口的标题就可以了,没有的那个就用NULL代替。
比如现在有一个窗口名为"无标题.txt - 记事本"的记事本程序。
那么我就可以用上面的函数获得这个窗口的句柄,那获得了这个窗口的句柄我可以干什么呢?作用可大了,因为很多操作窗口的函数,都需要窗口句柄作参数,如移动、改变窗口大小的MoveWindow函数,在这里举个例子,大家就更能体会到这个FindWindow的用法、用处。
FindWindow例子:已知一个窗口名称,写一个程序关闭该窗口,假设当前电脑正有一个窗口名为"无标题.txt - 记事本"的记事本程序运行#include<windows.h> //API函数的头文件int main(){HWND wnd; //定义一个窗口句柄变量,用以存储找到的窗口句柄wnd=FindWindow(NULL,"无标题.txt - 记事本"); //获得窗口名为"无标题.txt - 记事本"的窗口句柄SendMessage(wnd,WM_CLOSE,0,0); //调用SendMessage函数,发送一个WM_CLOSE(关闭)消息给wnd窗口句柄。
return0;}如果要根据窗口类名来获得窗口句柄话,只要给函数的第一个参数填类名,第二个参数窗口名填NULL,即可,用Spy++可查看窗口类名。
第二个:SendMessage根据窗口句柄发送一个消息给窗口函数定义:LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam);第一个参数是窗口句柄,第二参数个是消息类型,下面的消息表列举了所有消息,第三,四个参数是消息附带信息,解释依赖于消息类型,比如一个字符消息(WM_CHAR),那么第三个参数就储存有一个字符的ASCII码。
API函数快速入门API函数简介概要
API函数快速入门API函数简介作为一个编程初学者来说,API函数也许是一个时常耳闻却感觉有些神秘的东西。
单看它的复杂语法,就足令人望而生畏,但是任何事物在我们深入了解它之前,总是会有这种感觉的。
我们这篇API入门教程的目的,就是要把API函数的来龙去脉告诉大家,破除对API函数的畏惧,使它成为我们编程的好助手。
大家可能在许多书上看到过API的英文全称(ApplicationProgrammingInterface),WIN32API也就是MicrosoftWindows32位平台的应用程序编程接口。
对这个定义的理解,需要追溯到操作系统的发展历史上,当WINDOWS操作系统开始占据主导地位的时候,开发WINDOWS平台下的应用程序成为人们的需要。
而在WINDOWS程序设计领域处于发展的初期,WINDOWS程序员所能使用的编程工具唯有API函数,这些函数是WINDOWS提供给应用程序与操作系统的接口,他们犹如“积木块”一样,可以搭建出各种界面丰富,功能灵活的应用程序。
所以可以认为API函数是构筑整个WINDOWS框架的基石,在它的下面是WINDOWS 的操作系统核心,而它的上面则是所有的华丽的WINDOWS应用程序。
但是,那时的WINDOWS程序开发还是比较复杂的工作,程序员必须熟记一大堆常用的API函数,而且还得对WINDOWS操作系统有深入的了解。
然而随着软件技术的不断发展,在WINDOWS平台上出现了很多优秀的可视化编程环境,程序员可以采用“即见即所得”的编程方式来开发具有精美用户界面和功能强大的应用程序。
这些优秀可视化编程环境操作简单、界面友好(诸如VB、VC++、DELPHI等),在这些工具中提供了大量的类库和各种控件,它们替代了API的神秘功能,事实上这些类库和控件都是构架在WIN32API函数基础之上的,是封装了的API函数的集合。
它们把常用的API函数的组合在一起成为一个控件或类库,并赋予其方便的使用方法,所以极大的加速了WINDOWS应用程序开发的过程。
易语言常用api(dll命令)
版本2.DLL命令生成声音_, 整数型, "kernel32.dll", "Beep", 公开, , Beep,用于生成简单的声音Long,TRUE(非零)表示成功,否则返回零。
会设置GetLastError.参数声音频率, 整数型, , dwFreq,声音频率(从37Hz到32767Hz)Long,声音频率(从37Hz到32767Hz)。
在windows95中忽略.参数声音持续时间, 整数型, , dwDuration,参见相关帮助Long,声音的持续时间,以毫秒为单位。
如为-1,表示一直播放声音,直到再次调用该函数为止。
在windows95中会被忽略.DLL命令取字节数据地址_, 整数型, "kernel32.dll", "lstrcpyn", 公开, lstrcpyn .参数数据1, 字节型, 传址, lpString1.参数数据2, 字节型, 传址, lpString2.参数数据长度, 整数型, , iMaxLength.DLL命令取字节数组数据地址_, 整数型, "kernel32.dll", "lstrcpyn", 公开, lstrcpyn .参数数据1, 字节型, 传址数组, lpString1.参数数据2, 字节型, 传址数组, lpString2.参数数据长度, 整数型, , iMaxLength.DLL命令取字节集数据地址_, 整数型, "kernel32.dll", "lstrcpyn", 公开, lstrcpyn .参数数据1, 字节集, 传址, lpString1.参数数据2, 字节集, 传址, lpString2.参数数据长度, 整数型, , iMaxLength.DLL命令取文本数据地址_, 整数型, "kernel32.dll", "lstrcpyn", 公开, lstrcpyn .参数数据1, 文本型, 传址, lpString1.参数数据2, 文本型, 传址, lpString2.参数数据长度, 整数型, , iMaxLength.DLL命令取文本数组数据地址_, 整数型, "kernel32.dll", "lstrcpyn", 公开, lstrcpyn .参数数据1, 文本型, 传址数组, lpString1.参数数据2, 文本型, 传址数组, lpString2.参数数据长度, 整数型, , iMaxLength.DLL命令取整数数据地址_, 整数型, "kernel32.dll", "lstrcpyn", 公开, lstrcpyn .参数数据1, 整数型, 传址, lpString1.参数数据2, 整数型, 传址, lpString2.参数数据长度, 整数型, , iMaxLength.DLL命令取整数数组数据地址_, 整数型, "kernel32.dll", "lstrcpyn", 公开, lstrcpyn .参数数据1, 整数型, 传址数组, lpString1.参数数据2, 整数型, 传址数组, lpString2.参数数据长度, 整数型, , iMaxLength.DLL命令lstrcpyn, 整数型, "kernel32.dll", "lstrcpyn", 公开, lstrcpyn.参数数据1, 文本型, 传址, lpString1.参数数据2, 文本型, 传址, lpString2.参数数据长度, 整数型, , iMaxLength.DLL命令置线程优先级_, 整数型, "kernel32", "SetThreadPriority", 公开, $(b)设定线程的优先级别非零表示成功,零表示失败。
WindowsAPI函数大全(Windows编程参考手册)
WindowsAPI函数大全(Windows编程参考手册)1、基础服务(Base Services):提供对Windows系统可用的基础资源的访问接口。
比如象:文件系统(file system)、外部设备(device)、,进程(process)、线程(thread)以及访问注册表(Windows registry)和错误处理机制(error handling)。
这些功能接口位于,16位Windows下的kernel.exe、krnl286.exe或krnl386.exe系统文档中;以及32位Windows下的kernel32.dll和advapi32.dll中。
2、图形设备接口(GDI):提供功能为:输出图形内容到显示器、打印机以及其他外部输出设备。
它位于16位Windows下的gdi.exe;以及32位Windows下的gdi32.dll。
3、图形化用户界面(GUI):提供的功能有创建和管理屏幕和大多数基本控件(control),比如按钮和滚动条。
接收鼠标和键盘输入,以及其他与GUI有关的功能。
这些调用接口位于:16位Windows下的user.exe,以及32位Windows下的user32.dll。
从Windows XP 版本之后,基本控件和通用对话框控件(Common Control Library)的调用接口放在comctl32.dll中。
4、通用对话框链接库(Common Dialog Box Library):为应用程序提供标准对话框,比如打开/保存文档对话框、颜色对话框和字体对话框等等。
这个链接库位于:16位Windows下的commdlg.dll 中,以及32位Windows下comdlg32.dll中。
它被归类为User Interface API之下。
5、通用控件链接库(Common Control Library):为应用程序提供接口来访问操作系统提供的一些高级控件。
比如像:状态栏(status bar)、进度条(progress bars)、工具栏(toolbar)和标签(tab)。
PB编程常用API函数
PB编程常用API函数1. 如何使PB窗口总在最上层通过SetWindowPos函数吧窗口的显示层次修改为HWND_TOPMOST,就可以使指定窗口永远不会被其他窗口覆盖,该函数声明为:Function Long SetWindowPos(Long hwnd, Long ord, Long x, Long y, Long dx, Long dy, Long uflag) Library ―user32.dll‖参数1为要顶层显示的窗口句柄,参数2指定显示的层次,参数7为附加选项,其余参数指定窗口位置和大小,均可忽略。
在窗口的Open或Activate事件中加入如下函数调用:SetWindowPos(Handle(This),-1,0,0,0,0,3)参数2取-1表示在最顶层显示窗口,取1表示在最底层显示;最后一个参数若取1,表示窗口大小保持不变,取2表示保持位置不变,因此,取3(=1+2)表示大小和位置均保持不变,取0表示将窗口的大小和位置改变为指定值。
2. 在PB中如何获得光盘盘符通过GetDriveType函数可以获取驱动器(如:软驱、硬盘、光驱、网络映射驱动器等)的信息,该函数声明为:Function Unit GetDriveTypeA(String drive) Library ―kernel32.dll‖参数为一个盘符(如―C:‖),返回值:1表示未知,2表示软驱,3表示本地硬盘,4表示网络驱动器,5表示光驱。
因此如下代码可以获得光盘的盘符:For I=Asc(‗D‘) to Asc(‗Z‘)//列举所有可能的CDROM的驱动器If GetDriveTypeA(Char(i)+‖:‖) = 5 Then//若找到CDROMMessagebox(―CDROM‖,Char(i)+‖:‖)//显示光盘盘符Exit //退出循环End ifNext3. 在PB中如何获取目录信息(1)获取当前目录。
汇编常用API函数
【文件操作类的api函数主要是包含】:文件的创建; createfile | 文件的读写;writefile |获取文件大小;getfilesize | 取文件属性;GetFileAttributesA|设置文件属性;setfileattribute|复制文件 copyfile|移动文件movefile | 关闭文件句柄;closehandle1、sleep 延迟函数004A2015 68 E8030000 push 0x3E8 1000毫秒==1秒004A201A E8 41C2F6FF call <jmp.&kernel32.Sleep>004A1E48 > 68 E8030000 push 3E8004A1E4D FF15 70834A00 call dword ptrds:[<&kernel32.Sleep>] ; kernel32.Sleeppush xxxxcall [xxxxxxxx] 模板CTRL+N查找函数参考-------------------------------------------2、ExitProcess 中止一个进程004A20E0 6A 00 push 0x0 (终止本进程)004A20E2 E8 4D4DF6FF call <jmp.&kernel32.ExitProcess>004A1E48 > 6A 00 push 0004A1E4A FF15 E0844A00 call dword ptrds:[<&kernel32.ExitProc>; kernel32.ExitProcess-------------------------------------------3、WinExec 调用运行另一个程序的函数push 0push 路径call [xxxxxxxx]004A2078 50 push eax004A2079 E8 EE50F6FF call <jmp.&kernel32.WinExec>004A1E48 > 6A 01 push 0x1 //显示运行004A1E4A 68 721E4A00 push004A1E72 ; ASCII "c:\d.exe"004A1E4F FF15 48834A00 call dword ptr[<&kernel32.WinExec>] ; kernel32.WinExec----------------------------------------------4、GetLocalTime 获取本地时间的函数0040ADF3 50 PUSH EAX0040ADF4 E8 3BC1FFFF CALL <JMP.&kernel32.GetLocalTime> DB 07 2011年月周日时分秒004A1E49 8D85 70FEFFFF lea eax, dword ptr [ebp-0x190]004A1E4F 50 push eax //这个里面004A1E50 FF15 60844A00 call dword ptr[<&kernel32.GetLocalTime>] ;00473AD5 8D45 EC lea eax, dword ptr [ebp-0x14] 00473AD8 50 push eax00473AD9 E8 A634F9FF call <jmp.&kernel32.GetSystemTime> --------------------------------------------------------------5、GetSystemDirectoryA 获取系统目录的函数call <jmp.&kernel32.GetWindowsDirectoryA>0049FD5E 68 FF000000 push 0xFF 大小0049FD63 8D85 00FFFFFF lea eax, dword ptr [ebp-0x100] 0049FD69 50 push eax0049FD6A E8 6D72F6FF call<jmp.&kernel32.GetWindowsDirectoryA>00401006 6A 20 push 0x20 bufer size00401008 68 00234000 push 00402300 bufer address 0040100D FF15 04314000 call GetSystemDirectoryA004A1E48 > 68 00010000 push 0x100004A1E4D 8D85 00FFFFFF lea eax, dword ptr [ebp-0x100]004A1E53 50 push eax004A1E54 FF15 23204C00 call dword ptr[<&kernel32.GetSystemDirectoryA>] ;xp c:\windows\system322000--------------------------------------------------------------6、GetTickCount 从你开机----现在所经历的毫秒数 1000 ==1秒GetTickCount 无参数有返回值获取系统启动时间的函数返回数据存放在eax寄存器中;005C7A02005DCED4005E06DC获取到这个数据,然后将他写入到程序里面。
API函数mciSendString使用方法(VB版)
API函数mciSendString使用方法(VB版)1、MP3播放器原理MP3播放器是利用数字信号处理器DSP(Digital Sign Processer)来完成处理传输和解码MP3文件的任务的。
DSP掌管随身听的数据传输,设备接口控制,文件解码回放等活动。
DSP能够在非常短的时间里完成多种处理任务,而且此过程所消耗的能量极少(这也是它适合于便携式播放器的一个显著特点)。
首先将MP3歌曲文件从内存中取出并读取存储器上的信号→到解码芯片对信号进行解码→通过数模转换器将解出来的数字信号转换成模拟信号→再把转换后的模拟音频放大→低通滤波后到耳机输出口,输出后就是我们所听到的音乐了。
2、相关API函数简介:mciSendString是用来播放多媒体文件的API指令,可以播放MPEG,AVI,WAV,MP3,等等,下面介绍它的使用方法:该函数有四个参数:第一个参数:要发送的命令字符串。
字符串结构是:[命令][设备别名][命令参数].第二个参数:返回信息的缓冲区,为一指定了大小的字符串变量.第三个参数:缓冲区的大小,就是字符变量的长度.第四个参数:回调方式,一般设为零返回值:函数执行成功返回零,否则返回错误代码一、常用命令1.打开(Open),格式:Open 设备名 [type 设备型式][alias 别名]Dim mName as stringmName = "f:\\mpeg\\mpeg1.avi"mciSendString "open mName type MPEGVideo Alias movieparent %u Style %u notify",0&, 0, 0其中:open 操作命令mName 全路径文件名type MPEGVideo 是指打开MPEG,AVI等类型,如果不加这一句,就是打开WAV,MP3等Alias movie 定义了该操作的别名为movie,后续操作只要指明别名即可parent %u 源Style %u 样式notify 通知2.播放(Play),格式:Play 设备名 [from 起点][to 终点]mciSendString "play movie", 0&, 0, 0mciSendString "play movie fullscreen", 0&, 0, 0 '全屏播放3.暂停(Pause):mciSendString "pause movie", 0&, 0, 04.继续(Resume):mciSendString "resume movie", 0&, 0, 05.停止(Stop):mciSendString "stop movie", 0&, 0, 06.关闭(Colse):mciSendString "close movie", 0&, 0, 07.前进到下一个位置:mciSendString "step movie", 0&, 0, 08.后退到上一个位置:mciSendString "step movie reverse", 0&, 0, 09.前进或后退 N 個位置(其中 N<0 即表示后退)mciSendString "step movie by " & str(N), 0&, 0, 010.获取当前播放位置:Dim ST As String*64mciSendString "status movie position", st, len(st), 011. 获取媒体的总长度:mciSendString "status movie length", st, len(st), 0l=val(st) 'L就是所播放文件的长度12.获取播放信息:Dim ST As String*64mciSendString "status movie mode", ST, Len(ST), 0If Left(ST, 7) = "stopped" Then (处理代码) '播放完毕13.循环播放:mciSendString "play movie repeat", 0&, 0, 0二、控制声音大小:Dim V As LongmciSendString "status movie volume", V, 0, 0 'V是获取的音量大小值。
API参数
b BOOL (int)布尔(整数)
byUnsigned Char (Byte)无符号字符(字节)
c Char字符(字节)
cbCount of bytes字节数
crColor reference (Short)x的集合(短整数)
int y,// vertical position of window
int nWidth,// window width
int nHeight,// window height
HWND hWndParent,// handle to parent or owner window
HMENU hMenu,// handle to menu, or child-window identifier
LPCTSTR lpClassName,// pointer to registered class name
LPCTSTR lpWindowName,// pointer to window name
DWORD dwStyle,// window style
int x,// horizontal position of window
注意看前缀时请不要看前面的类型说明符,而是要看词的前缀,如DWORD dwExStyle,只需要看dwExStyle就知道传递的是双字数。
另外还有其它的组合,只要稍注意就能行,比如说lpfn表示指向函数的长指针,在MASM中则是一个函数的地址,,还有像lpSecurityAttributes之类的,则是指向SECURITY_ATTRIBUTES结构的长指针(地址),lpVBuffer表示传递一个缓存(Buffer)长指针(lp)或者为空(void),还有一些没有前缀的则是这个词已经足够说明它的意思了。等等,熟悉这些前缀的含义可以让你在学习API的时候进行快速的掌握。并能排除一些错误。
API函数大全
API函数大全1. API之网络函数WNetAddConnection 创建同一个网络资源的永久性连接WNetAddConnection2 创建同一个网络资源的连接WNetAddConnection3 创建同一个网络资源的连接WNetCancelConnection 结束一个网络连接WNetCancelConnection2 结束一个网络连接WNetCloseEnum 结束一次枚举操作WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接WNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接WNetEnumResource 枚举网络资源WNetGetConnection 获取本地或已连接的一个资源的网络名称WNetGetLastError 获取网络错误的扩展错误信息WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称WNetGetUser 获取一个网络资源用以连接的名字WNetOpenEnum 启动对网络资源进行枚举的过程2. API之消息函数BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置GetMessageTime 取得消息队列中上一条消息处理完毕时的时间PostMessage 将一条消息投递到指定窗口的消息队列PostThreadMessage 将一条消息投递给应用程序RegisterWindowMessage 获取分配给一个字串标识符的消息编号ReplyMessage 答复一个消息SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口SendMessageCallback 将一条消息发给窗口SendMessageTimeout 向窗口发送一条消息SendNotifyMessage 向窗口发送一条消息3. API之文件处理函数CloseHandle 关闭一个内核对象。
Windows API 函数大全(精心总结)
Windows API函数大全(精心总结)目录1. API之网络函数 (1)2. API之消息函数 (1)3. API之文件处理函数 (2)4. API之打印函数 (5)5. API之文本和字体函数 (7)6. API之菜单函数 (8)7. API之位图、图标和光栅运算函数 (9)8. API之绘图函数 (10)9. API之设备场景函数 (13)10. API之硬件与系统函数 (14)11. API之进程和线程函数 (17)12. API之控件与消息函数 (18)1. API之网络函数WNetAddConnection 创建同一个网络资源的永久性连接WNetAddConnection2 创建同一个网络资源的连接WNetAddConnection3 创建同一个网络资源的连接WNetCancelConnection 结束一个网络连接WNetCancelConnection2 结束一个网络连接WNetCloseEnum 结束一次枚举操作WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接WNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接WNetEnumResource 枚举网络资源WNetGetConnection 获取本地或已连接的一个资源的网络名称WNetGetLastError 获取网络错误的扩展错误信息WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称WNetGetUser 获取一个网络资源用以连接的名字WNetOpenEnum 启动对网络资源进行枚举的过程2. API之消息函数BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位臵GetMessageTime 取得消息队列中上一条消息处理完毕时的时间PostMessage 将一条消息投递到指定窗口的消息队列PostThreadMessage 将一条消息投递给应用程序RegisterWindowMessage 获取分配给一个字串标识符的消息编号ReplyMessage 答复一个消息SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口SendMessageCallback 将一条消息发给窗口SendMessageTimeout 向窗口发送一条消息SendNotifyMessage 向窗口发送一条消息3. API之文件处理函数CloseHandle 关闭一个内核对象。
windows权限设置 api函数例子 -回复
windows权限设置api函数例子-回复Windows权限设置API函数是用于管理操作系统用户和组的权限的函数。
在Windows操作系统中,每个用户和组都有不同的权限,以控制其对系统资源的访问和操作。
下面将逐步介绍几个常用的Windows权限设置API 函数,以及它们的使用方法和示例。
一、OpenProcessToken函数OpenProcessToken函数用于打开指定进程的访问令牌。
它接受两个参数,一个是指定进程的句柄,另一个是访问令牌的指针。
通过这个函数,我们可以获取到指定进程的访问令牌,从而进行用户权限的设置。
示例代码:HANDLE hProcess;HANDLE hToken;打开指定进程的句柄hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwProcessId);打开指定进程的访问令牌if (!OpenProcessToken(hProcess, TOKEN_ALL_ACCESS, &hToken)) {出错处理}对访问令牌进行操作...关闭句柄CloseHandle(hToken);CloseHandle(hProcess);二、LookupPrivilegeValue函数LookupPrivilegeValue函数用于检索指定系统名称的权限名称和本地LUID的值。
它接受三个参数,一个是系统名称,一个是权限名称,一个是本地LUID的指针。
通过这个函数,我们可以根据系统名称和权限名称获取到对应的权限LUID,从而进行权限设置。
示例代码:LUID luid;检索指定系统和权限的LUIDif (!LookupPrivilegeValue(NULL, SE_SECURITY_NAME, &luid)) {出错处理}三、AdjustTokenPrivileges函数AdjustTokenPrivileges函数用于启用或禁用指定访问令牌的权限。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
常用API函数参数5ImmIsIME函数功能:判断指定的句柄是否为IME;函数原型:BOOL ImmIsIME( HKL hKL );参数hKL:待检查的键盘布局句柄;返回值:函数调用成功返回1,失败返回0.速查信息:Windows NT: 要求4.0或更高版本Windows: 要求Windows 95 或更高.Windows CE:不支持.Header: 声明在imm.h.Import Library: imm32.lib.Windows XP没有自带五笔型输入法,这对五笔型用户而言无疑是个大大的遗憾。
网上的五笔型输入法虽然种类很多,也不乏优秀的版本,但一方面有些版本是共享软件需要注册,另一方面也许很多五笔型输入法的老用户最习惯用的还是老牌的“王码五笔型输入法86/98版”。
微软的Office XP软件中包含了这个老牌的五笔型输入法,但如果用户并不使用Office XP中的任何组件,仅仅是为了使用“王码五笔型输入法”而运行Office XP安装程序,就显的有些小题大做了,更不用说是某些零时在外面用公用电脑而又想用五笔型输入法的情况。
于是网上出现了很多简化的安装方法,大体上可以分为三个步骤:拷贝输入法文件(从Of还是9x/ME。
示例代码fice XP光盘中或已经安装了“王码五笔型输入法”的电脑中提取)增加注册表项重启后通过控制面板添加输入法整个过程中拷贝输入法文件和增加注册表项可以用批处理和导入注册表文件来简化操作,但必须重启计算机才能在控制面板里添加输入法,这同样让使用者觉得比较烦琐。
那么作为一个编程爱好者能不能通过写个小程序来实现在不重新启动计算机的情况下全自动的安装“王码五笔型输入法”呢(也就是即装即用)?答案是肯定的!因为微软的Office XP 安装程序做到了,这就表示微软肯定留有一个专门用来安装输入法的接口,一般来说应该是一系列API函数。
经过一番摸索,笔者在MSDN里找到了这个可以用来安装输入法的API:ImmInstallIME()。
Ok,现在我们就开始利用这个API来实现自己的“王码五笔型输入法”全自动安装程序。
一、准备素材我们先试着从Office XP光盘中提取“王码五笔型输入法”的输入法文件。
通过Windows 的查找功能在Office XP的第一张安装盘中查找与“WINWB”相关的文件,在OFFICE1.CAB 中找到了一下14个文件:WINWB86.CHM.*、T.*、WINWB86.HLP.*、WINWB86A.IME.*、WINWB86A.MB.*、WINWB86W.IME.*、WINWB86W.MB.*、WINWB98.CHM.*、T.*、WINWB98.HLP.*、WINWB98A.IME.*、WINWB98A.MB.*、WINWB98W.IME.*、WINWB98W.MB.*,其中*是很长的一串由字母、数字和下滑线组成的序列(个人认为应该是微软为了校验文件内容的正确性而加上的内容为该文件效验码的后缀吧)。
去掉这个长长的后缀,可以看到5种类型的文件。
很明显,*.CHM、*.CNT和*.HLP是五笔型输入法的帮助文件,*.MB是码表文件,而*.IME是主要的输入法文件。
其中*.IME和*.MB有文件名部分以A结尾和以W结尾两个版本,经过笔者试验证实了它们分别是ANSI和UNICODE两种版本的输入法文件。
文件名部分以A结尾的文件适用于Windows 9x,以W结尾的文件适用于NT系列Windows系统。
提取了输入法文件后必须让安装程序针对不同版本的操作系统将它们拷贝到正确的目录,以便调用API来进行输入法安装。
笔者分别在安装了Office XP中自带的“王码五笔型输入法”的Windows 98SE和Windows XP操作系统中查找以上文件,发现帮助文件都存放在WINDOWSHELP目录中(这里假设Windows系统都安装在WINDOWS目录)。
而主要的输入法文件(*.IME)和码表文件(*.MB)在Windows 9x下存放于WINDOWSSYSTEM目录中,在NT系列Windows系统中存放于WINDOWSSYSTEM32目录中。
二、相关API函数素材的准备工作已经完成,现在我们来看一下代码编写过程中需要用到的4个主要的API函数。
2.1 GetVersion函数原型:DWORD GetVersion(VOID);该函数返回与当前使用的Windows系统版本有关的信息。
可以通过判断返回值最高位是否为1来判断当前是用的系统是NT/2000/XP还是9x/ME。
示例代码:if (GetVersion() < 0x80000000)//NT/2000/XPelse//9x/ME2.2 CopyFile函数原型:BOOL CopyFile(LPCTSTR lpExistFileName, LPCTSTR lpNewFileName, BOOL bFailIfExists);该函数将以lpExistFileName指向的字符串为文件名的文件复制为以lpNewFileName 指向的字符串为文件名的新文件。
这里的文件名可以包含文件路径。
最后的参数bFailIfExists决定当新文件已存在时是否覆盖现有文件,如果为FALSE,则覆盖。
示例代码:CopyFile("c:a.txt", "d: .txt", FALSE);以上代码将c盘下的a.txt文件复制到D盘下并命名为b.txt。
如果已经存在b.txt,则覆盖原来的文件。
2.3 ImmInstallIME函数原型:HKL ImmInstallIME(LPCTSTR lpszIMEFileName, LPCTSTR lpszLayoutText);这是制作“王码五笔型输入法”全自动安装程序的关键函数。
函数的两个参数分别为输入法IME文件的文件名和在控制面板的是输入法选项中显示的输入法名称。
函数调用后将返回一个被安装输入法的输入法标识符(或称做输入法句柄)。
示例代码:HKL hKL = ImmInstallIME("c:winwb86.ime", "王码五笔型输入法86版");以上代码将输入法文件c:winwb86.ime安装到系统中,并命名为“王码五笔型输入法86版”。
函数调用后返回安装的输入法的标识符,存放在hKL变量中。
2.4 ImmIsIME函数原型:BOOL ImmIsIME(HKL hKL);该函数判断hKL指向的输入法是否有效。
我们可以用ImmInstallIME函数的返回值作为该函数参数,通过函数返回值来判断输入法是否安装成功。
示例代码:if (ImmIsIME(hKL))//安装输入法成功else//安装失败hKL为调用ImmInstallIME()后得到的输入法标识符。
三、创建工程并添加代码1. 打开Visual C++ 6.0,通过菜单File - New新建一个名为“WINWB”的“Win32 Application”工程(如图1),单击“OK”。
2. 在应用程序类型选择中选择“An empty project”(图2),单击“Finsish”。
这样我们就新建好了一个空的Win32应用程序工程。
3. 通过菜单Project - Add to Project - New添加一个“Resource Script”资源文件,命名为“WINWB”(如图3)。
4. 通过菜单Insert - Resource添加一个新的Dialog资源(如图4)。
5. 调整Dialog资源的若干属性。
在Dialog的任意空白区域双击鼠标左键打开属性对话框,在属性对话框的Gerneral选项卡中更改ID为“IDD_MAIN”、 Caption属性为“王码五笔型输入法安装程序”(如图5)。
单击Font按钮,更改字体为宋体9号(这是简体中文版XP的标准字体型号)。
单击More Styles选项卡,选中Center属性,使对话框能在屏幕中居中显示(如图6)。
6. 关闭属性对话框,回到资源编辑界面。
删掉系统自动添加的“Cancel”按钮并更改“OK”按钮的Caption属性为“安装”(如图7)。
7. 添加一个新的Static Text控件,打开属性对话框更改Caption属性为“请选择输入法版本:”(如图8)。
8.添加一个新的List Box控件,打开属性对话框更改ID为“IDC_LIST”(如图9):并更改它的Selection属性为“Multiple”(如图10)。
9. 适当调整控件的大小和位置,完成资源创建(如图11):10. 通过菜单Project - Add to Project - New添加一个“C++ Source File”代码文件,命名为“WINWB”(如图12):11. 在新添加“WINWB.CPP”文件中输入程序代码,代码如下:#include <windows.h>#include "resource.h"#pragma comment(lib, "imm32.lib")#define IME_WINWB86 0#define IME_WINWB98 1BOOL CALLBACK Main_DlgProc(HWND, UINT, WPARAM, LPARAM); LPCTSTR TranslateFileName(LPCTSTR);void InstallIME(int);int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd){DialogBox(hInstance, (LPCTSTR)IDD_MAIN, NULL, Main_DlgProc); return 0;}//// 函数名:Main_DlgProc//// 参数:hDlg - 对话框句柄// uMsg - 消息值// wParam、lParam - 消息参数//// 返回值:TRUE - 消息已处理// FALSE - 消息未处理,返回给默认对话框处理程序处理//// 备注:对话框IDD_MAIN的回调函数//BOOL CALLBACK Main_DlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam){TCHAR strWINWB86[] = "王码五笔型输入法86版";TCHAR strWINWB98[] = "王码五笔型输入法98版";TCHAR cBuf[30]; // 存放LISTBOX中ITEM文本的缓冲区int nBuf[2]; // 存放LISTBOX中被选中的ITEM索引号的缓冲区int nSel; // LISTBOX中被选种的ITEM的数目switch (uMsg){case WM_INITDIALOG:// 初始化LISTBOXSendDlgItemMessage(hDlg, IDC_LIST, LB_ADDSTRING, 0, (LPARAM)strWINWB86);SendDlgItemMessage(hDlg, IDC_LIST, LB_ADDSTRING, 0, (LPARAM)strWINWB98);return TRUE;case WM_COMMAND:switch (LOWORD(wParam)){// 响应“退出”按钮case IDCANCEL:EndDialog(hDlg, 0);return TRUE;// 响应“添加”按钮case IDOK:// 获取LISTBOX中被选中的ITEM的数目及索引号nSel = SendDlgItemMessage(hDlg, IDC_LIST, LB_GETSELITEMS, 2, (LPARAM)nBuf);if (nSel == 0){MessageBox(hDlg, "请选择输入法版本!", "提示信息", MB_OK);return TRUE;}for (-- nSel; nSel >= 0; nSel --){// 获取LISTBOX中该索引号对应的ITEM的文本SendDlgItemMessage(hDlg, IDC_LIST, LB_GETTEXT, nBuf[nSel], (LPARAM)cBuf);if (lstrcmp(cBuf, strWINWB86) == 0){InstallIME(IME_WINWB86); // 安装王码五笔型输入法86版 }else if (lstrcmp(cBuf, strWINWB98) == 0){InstallIME(IME_WINWB98); // 安装王码五笔型输入法98版 }}return TRUE;}default:return FALSE;}}TCHAR g_strFileName[MAX_PATH]; // 函数TranslateFileName用到的字符串缓冲区//// 函数名:TranslateFileName//// 参数:lpszFileName - 指向用相对路径表示的文件名的字符串指针//// 返回值:指向用绝对路径表示的文件名的字符串指针//// 备注:将以WINDOWS目录为基准的用相对路径表示的文件名转换成用绝对路径表示的文件名//LPCTSTR TranslateFileName(LPCTSTR lpszFileName){// 获取WINDOWS目录的路径GetWindowsDirectory(g_strFileName, MAX_PATH);// 如果WINDOWS目录的路径是根目录if (g_strFileName[lstrlen(g_strFileName)-1] == ''){// 去掉路径最后的“”g_strFileName[lstrlen(g_strFileName)-1] = '';}// 连接WINDOWS目录路径和用相对路径表示的文件名lstrcat(g_strFileName, lpszFileName);return g_strFileName;}//// 函数名:InstallIME//// 参数:nIMEType - 输入法类型//// 返回值:无//// 备注:安装指定的输入法//void InstallIME(int nIMEType){TCHAR strWINWB86A[] = "王码五笔型86版";TCHAR strWINWB86W[] = "中文 (简体) - 王码五笔型86版";TCHAR strWINWB98A[] = "王码五笔型98版";TCHAR strWINWB98W[] = "中文 (简体) - 王码五笔型98版";HKL hKL;if (nIMEType == IME_WINWB86){// 复制输入法帮助文件CopyFile("WINWB86.HLP", TranslateFileName("HELPWINWB86.HLP"), FALSE);CopyFile("WINWB86.CHM", TranslateFileName("HELPWINWB86.CHM"), FALSE);CopyFile("T", TranslateFileName("T"), FALSE);if (GetVersion() < 0x80000000) // NT/2000/XP系统{// 复制UNICODE版输入法文件CopyFile("WINWB86W.IME",TranslateFileName("SYSTEM32WINWB86.IME"), FALSE);CopyFile("WINWB86W.MB",TranslateFileName("SYSTEM32WINWB86.MB"), FALSE);// 安装UNICODE版输入法hKL = ImmInstallIME(TranslateFileName("SYSTEM32WINWB86.IME"), strWINWB86W);}else // 9X/ME系统{// 复制ANSI版输入法文件CopyFile("WINWB86A.IME",TranslateFileName("SYSTEMWINWB86.IME"), FALSE);CopyFile("WINWB86A.MB", TranslateFileName("SYSTEMWINWB86.MB"), FALSE);// 安装ANSI版输入法hKL = ImmInstallIME(TranslateFileName("SYSTEMWINWB86.IME"), strWINWB86A);}// 验证输入法句柄是否有效if (ImmIsIME(hKL)){MessageBox(NULL, "安装王码五笔型输入法86版成功!", "提示信息", MB_OK);}else{MessageBox(NULL, "安装王码五笔型输入法86版失败!", "提示信息", MB_OK);}}else if (nIMEType == IME_WINWB98){CopyFile("WINWB98.HLP", TranslateFileName("HELPWINWB98.HLP"), FALSE);CopyFile("WINWB98.CHM", TranslateFileName("HELPWINWB98.CHM"), FALSE);CopyFile("T", TranslateFileName("T"), FALSE);if (GetVersion() < 0x80000000){CopyFile("WINWB98W.IME",TranslateFileName("SYSTEM32WINWB98.IME"), FALSE);CopyFile("WINWB98W.MB",TranslateFileName("SYSTEM32WINWB98.MB"), FALSE);hKL = ImmInstallIME(TranslateFileName("SYSTEM32WINWB98.IME"), strWINWB98W);}else{CopyFile("WINWB98A.IME",TranslateFileName("SYSTEMWINWB98.IME"), FALSE);CopyFile("WINWB98A.MB", TranslateFileName("SYSTEMWINWB98.MB"), FALSE);hKL = ImmInstallIME(TranslateFileName("SYSTEMWINWB98.IME"), strWINWB98A);}if (ImmIsIME(hKL)){MessageBox(NULL, "安装王码五笔型输入法98版成功!", "提示信息", MB_OK);}else{MessageBox(NULL, "安装王码五笔型输入法98版失败!", "提示信息", MB_OK);}}}四、制作安装包在菜单Build - Set Active Configuration设置工程配置为“Win32 – Release”,然后进行编译、连接。