Windows编程核心维度-DLL-具体函数对照表
Windows系统编程在网络、内存、进程、文件、界面、消息、IO 7个核心维度的表格中补充更多像SetWindowsHookExA、GetWindowThreadProcessId这类具体且高频的系统API函数名并完善每个函数的作用和调用方式。以下是补充后的完整表格所有函数均标注精确名称区分A/W后缀优先推荐W版本调用示例聚焦“可直接参考的极简写法”Windows编程核心维度-DLL-具体函数对照表核心维度DLL名称函数名主要作用调用方式C/C消息user32.dllSetWindowsHookExW设置全局/线程钩子键盘/鼠标/消息等替代SetWindowsHookExA需包含windows.h链接user32.lib示例HHOOK hHook SetWindowsHookExW(WH_KEYBOARD_LL, KeyboardProc, hInst, 0);CallNextHookEx调用钩子链中的下一个钩子函数钩子过程中必须调用示例LRESULT ret CallNextHookEx(hHook, nCode, wParam, lParam);UnhookWindowsHookEx卸载已设置的钩子释放钩子资源示例UnhookWindowsHookEx(hHook);GetWindowThreadProcessId获取指定窗口所属的线程ID和进程ID核心定位窗口归属示例DWORD dwPid; DWORD dwTid GetWindowThreadProcessId(hWnd, dwPid);EnumWindows枚举系统中所有顶层窗口遍历所有窗口示例EnumWindows(EnumWindowsProc, (LPARAM)NULL); // EnumWindowsProc为回调函数EnumChildWindows枚举指定父窗口下的所有子控件/子窗口示例EnumChildWindows(hParentWnd, EnumChildProc, (LPARAM)NULL);GetMessagePos获取当前消息触发时的鼠标屏幕坐标示例DWORD dwPos GetMessagePos(); int x LOWORD(dwPos), y HIWORD(dwPos);GetMessageTime获取当前消息的时间戳自系统启动后的毫秒数示例DWORD dwTime GetMessageTime();RegisterWindowMessageW注册自定义窗口消息避免系统消息冲突示例UINT WM_MY_MSG RegisterWindowMessageW(LMY_CUSTOM_MSG_123);界面user32.dllGetClientRect获取窗口客户区不含边框的矩形坐标相对窗口左上角需包含windows.h链接user32.lib示例RECT rcClient; GetClientRect(hWnd, rcClient);GetWindowRect获取窗口屏幕区含边框的矩形坐标相对屏幕左上角示例RECT rcWindow; GetWindowRect(hWnd, rcWindow);MoveWindow移动窗口位置并调整大小简单版示例MoveWindow(hWnd, 100, 100, 800, 600, TRUE); // x,y,宽,高,重绘SetWindowPos精细设置窗口位置、大小、Z序置顶/置底等示例SetWindowPos(hWnd, HWND_TOPMOST, 100,100,800,600, SWP_SHOWWINDOW);EnableWindow启用/禁用窗口/控件禁用后无法响应输入示例EnableWindow(hBtn, FALSE); // 禁用按钮GetDlgItem通过ID获取对话框中的控件句柄示例HWND hEdit GetDlgItem(hDlg, IDC_EDIT1);SendDlgItemMessageW直接向对话框控件发送消息无需先获取句柄示例SendDlgItemMessageW(hDlg, IDC_BUTTON1, BM_CLICK, 0, 0);RegisterHotKey注册全局热键无窗口焦点也能触发示例RegisterHotKey(hWnd, 1, MOD_CTRL, VK_F5); // CtrlF5UnregisterHotKey注销已注册的全局热键示例UnregisterHotKey(hWnd, 1);进程kernel32.dllCreateProcessAsUserW以指定用户身份创建进程需权限需包含windows.h链接kernel32.lib示例CreateProcessAsUserW(hToken, Lnotepad.exe, NULL, NULL, NULL, FALSE, 0, NULL, NULL, si, pi);WaitForMultipleObjects等待多个内核对象进程/线程/事件等触发示例HANDLE hObjs[]{hProcess1, hProcess2}; WaitForMultipleObjects(2, hObjs, TRUE, INFINITE);GetProcessPriorityClass获取进程的优先级类别如高优先级/普通示例DWORD dwPri GetProcessPriorityClass(hProcess);SetProcessPriorityClass设置进程优先级类别示例SetProcessPriorityClass(hProcess, HIGH_PRIORITY_CLASS);GetThreadPriority获取线程优先级示例int nPri GetThreadPriority(hThread);SetThreadPriority设置线程优先级示例SetThreadPriority(hThread, THREAD_PRIORITY_HIGHEST);SuspendThread挂起指定线程暂停执行示例DWORD dwCount SuspendThread(hThread);ResumeThread恢复挂起的线程继续执行示例DWORD dwCount ResumeThread(hThread);user32.dllAttachThreadInput附加线程输入队列共享键盘/鼠标输入示例AttachThreadInput(dwTid1, dwTid2, TRUE);内存kernel32.dllReadProcessMemory读取其他进程的内存需进程读写权限需包含windows.h链接kernel32.lib示例ReadProcessMemory(hProcess, pRemoteAddr, pLocalBuf, 1024, dwRead);WriteProcessMemory写入数据到其他进程的内存需进程读写权限示例WriteProcessMemory(hProcess, pRemoteAddr, pLocalBuf, 1024, dwWrite);VirtualAllocEx在其他进程地址空间分配虚拟内存示例LPVOID pRemoteMem VirtualAllocEx(hProcess, NULL, 4096, MEM_COMMIT, PAGE_READWRITE);VirtualFreeEx释放其他进程中分配的虚拟内存示例VirtualFreeEx(hProcess, pRemoteMem, 0, MEM_RELEASE);HeapSize获取堆内存块的实际大小示例SIZE_T dwSize HeapSize(GetProcessHeap(), 0, pBuf);HeapReAlloc重新分配堆内存扩容/缩容示例LPVOID pNewBuf HeapReAlloc(GetProcessHeap(), 0, pBuf, 2048);psapi.dllGetProcessWorkingSetSize获取进程工作集大小物理内存使用需包含psapi.h链接psapi.lib示例SIZE_T dwMin, dwMax; GetProcessWorkingSetSize(hProcess, dwMin, dwMax);网络ws2_32.dllgethostbyname通过主机名如www.baidu.com获取IP地址信息需包含winsock2.h链接ws2_32.lib示例hostent* pHost gethostbyname(www.baidu.com);gethostname获取本地主机的名称示例char szHost[256]; gethostname(szHost, 256);WSAGetLastError获取Winsock API的最后错误码替代GetLastError示例int nErr WSAGetLastError();WSACancelAsyncRequest取消未完成的异步Winsock请求示例WSACancelAsyncRequest(hAsyncReq);AcceptEx高性能异步接受TCP连接IOCP场景示例AcceptEx(sListen, sClient, pBuf, 0, sizeof(sockaddr_in)16, sizeof(sockaddr_in)16, dwRecv, ov);ConnectEx高性能异步连接TCP服务器IOCP场景示例ConnectEx(s, (sockaddr*)svrAddr, sizeof(svrAddr), pBuf, 0, dwSent, ov);文件kernel32.dllFindFirstFileW查找指定路径下的第一个文件/目录替代FindFirstFileA需包含windows.h链接kernel32.lib示例WIN32_FIND_DATAW fd; HANDLE hFind FindFirstFileW(L*.txt, fd);FindNextFileW查找下一个文件/目录遍历文件列表示例while (FindNextFileW(hFind, fd)) { /* 遍历文件 */ }FindClose关闭文件查找句柄释放FindFirstFileW资源示例FindClose(hFind);CopyFileW复制文件简单版替代SHCopyFileW示例CopyFileW(Lsrc.txt, Ldst.txt, TRUE); // 最后参数为TRUE表示目标存在则失败MoveFileW移动/重命名文件示例MoveFileW(Lold.txt, Lnew.txt);DeleteFileW删除指定文件替代SHFileOperationW的删除示例DeleteFileW(Ltest.txt);GetFullPathNameW将相对路径转换为绝对路径示例WCHAR szFullPath[MAX_PATH]; GetFullPathNameW(Ltest.txt, MAX_PATH, szFullPath, NULL);CreateFileMappingW创建文件映射内存映射文件共享内存示例HANDLE hMap CreateFileMappingW(hFile, NULL, PAGE_READWRITE, 0, 4096, LMyFileMap);MapViewOfFile将文件映射到进程内存空间示例LPVOID pMap MapViewOfFile(hMap, FILE_MAP_ALL_ACCESS, 0, 0, 0);IOkernel32.dllCancelIo取消指定文件句柄的所有未完成异步IO操作需包含windows.h链接kernel32.lib示例CancelIo(hFile);CancelIoEx更灵活取消指定的异步IO操作可指定OVERLAPPED示例CancelIoEx(hFile, ov);ReadDirectoryChangesW监控目录变化文件创建/删除/修改等示例ReadDirectoryChangesW(hDir, pBuf, 4096, TRUE, FILE_NOTIFY_CHANGE_FILE_NAME, dwBytes, ov, NULL);DeviceIoControl向设备驱动发送控制码如操作串口/磁盘示例DeviceIoControl(hDevice, IOCTL_DISK_GET_DRIVE_GEOMETRY, NULL, 0, pGeom, sizeof(DISK_GEOMETRY), dwOut, NULL);FlushFileBuffers刷新文件缓冲区强制将缓存数据写入磁盘示例FlushFileBuffers(hFile);总结函数命名规则带A后缀的函数如SetWindowsHookExA为ANSI编码W后缀为Unicode编码Windows系统优先使用W版本核心定位类函数如GetWindowThreadProcessId无A/W后缀直接兼容Unicode。调用关键注意事项跨进程操作如ReadProcessMemory、CreateProcessAsUserW需获取足够权限如PROCESS_ALL_ACCESS否则调用失败钩子函数SetWindowsHookExW需保证回调函数在有效内存中DLL钩子需注入目标进程资源类句柄如文件映射、钩子、套接字必须手动释放如UnhookWindowsHookEx、FindClose避免泄漏。高频场景关联窗口监控用EnumWindowsGetWindowThreadProcessId全局热键/键盘监控用RegisterHotKey或SetWindowsHookExW高性能网络IO用AcceptEx/ConnectExIO完成端口内存共享用CreateFileMappingWMapViewOfFile。

相关新闻

Local AI MusicGen vs 传统作曲:AI如何改变音乐创作流程

Local AI MusicGen vs 传统作曲:AI如何改变音乐创作流程

Local AI MusicGen vs 传统作曲:AI如何改变音乐创作流程 1. 从零开始体验本地AI作曲:为什么你需要一个私人音乐生成工作台 你有没有过这样的时刻:正在剪辑一段视频,突然发现缺一段恰到好处的背景音乐;或者为游戏设计…

2026/5/17 4:40:13 阅读更多 →
GTE模型GPU加速指南:中文文本处理效率提升

GTE模型GPU加速指南:中文文本处理效率提升

GTE模型GPU加速指南:中文文本处理效率提升 1. 为什么你需要GTE中文向量模型 你是否遇到过这样的问题:在做语义搜索时,关键词匹配总漏掉意思相近但用词不同的内容?在构建RAG系统时,检索到的文档和用户问题看似相关&am…

2026/5/17 4:40:11 阅读更多 →
手把手教学:用SmallThinker-3B在边缘设备实现高效推理

手把手教学:用SmallThinker-3B在边缘设备实现高效推理

手把手教学:用SmallThinker-3B在边缘设备实现高效推理 1. 环境准备与快速部署 SmallThinker-3B是一个专门为边缘设备优化的轻量级AI模型,基于Qwen2.5-3b-Instruct微调而来。这个模型只有30亿参数,非常适合在资源受限的设备上运行&#xff0…

2026/5/17 4:40:10 阅读更多 →

最新新闻

智能告警分析引擎:用AI区分真实告警与噪声信号

智能告警分析引擎:用AI区分真实告警与噪声信号

智能告警分析引擎:用AI区分真实告警与噪声信号 一、从"告警洪泛"到"精准诊断"的噪声治理 大型微服务系统的告警洪泛是运维效率的核心障碍:一个节点网络抖动可能触发上游依赖链的级联告警,产生数十条重复或关联告警&#…

2026/7/7 13:04:23 阅读更多 →
5分钟掌握SPT-AKI Profile Editor:高效管理你的离线塔科夫存档

5分钟掌握SPT-AKI Profile Editor:高效管理你的离线塔科夫存档

5分钟掌握SPT-AKI Profile Editor:高效管理你的离线塔科夫存档 【免费下载链接】SPT-AKI-Profile-Editor Программа для редактирования профиля игрока на сервере SPT-AKI 项目地址: https://gitcode.com/gh_m…

2026/7/7 13:04:23 阅读更多 →
新乡旧车间改造翻新|河南老旧食品厂房拆除改造施工要点

新乡旧车间改造翻新|河南老旧食品厂房拆除改造施工要点

新乡旧车间改造翻新|河南老旧食品厂房拆除改造施工要点 近几年食品行业验收标准持续升级,很多投产多年的无尘车间、洁净厂房陆续出现墙板老化、密封失效、板缝发霉、洁净度不达标的问题。大量新乡本地食品企业,面临年审整改、产能升级、车间换…

2026/7/7 13:04:23 阅读更多 →
LV3296与STM32F722ZE嵌入式信号处理系统设计

LV3296与STM32F722ZE嵌入式信号处理系统设计

1. LV3296与STM32F722ZE的硬件协同架构解析在嵌入式信息处理系统中,LV3296作为一款高性能信号调理芯片,与STM32F722ZE微控制器的组合堪称黄金搭档。这套组合之所以能实现高效的信息捕获与跟踪,关键在于两者的硬件特性形成了完美互补。LV3296的…

2026/7/7 12:56:01 阅读更多 →
FFmpeg 6.1 视频帧提取实战:5种场景命令详解与性能对比

FFmpeg 6.1 视频帧提取实战:5种场景命令详解与性能对比

FFmpeg 6.1 视频帧提取实战:5种场景命令详解与性能对比 视频帧提取是计算机视觉、媒体处理等领域的基础操作,而FFmpeg作为开源多媒体处理工具的标杆,其功能强大但参数复杂的特性常常让使用者感到困惑。本文将深入解析FFmpeg 6.1在五种典型视频…

2026/7/7 12:56:01 阅读更多 →
传统产品经理转型AI产品,你需要掌握的5大核心能力与学习路径

传统产品经理转型AI产品,你需要掌握的5大核心能力与学习路径

本文针对传统产品经理转型AI产品经理的常见误区,指出“学会用ChatGPT”并不等同于懂AI产品。文章强调AI产品经理需要重建认知框架,并提出AI产品经理最重要的能力是接受不确定性。核心内容围绕AI技术基础、AI产品设计、数据驱动能力、AI商业思维以及跨团队…

2026/7/7 12:56:01 阅读更多 →

日新闻

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

图片浏览是移动应用中最高频的场景之一。从社交应用的照片流到电商平台的商品图集,从旅游应用的景点相册到摄影作品展示——用户对图片浏览的体验要求不断提高:流畅的切换动画、直观的缩略图导航、便捷的收藏操作、自动播放模式。HarmonyOS NEXT ArkUI 虽…

2026/7/7 0:05:16 阅读更多 →
24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V稳压芯片完整选型指南 PW8600 PW75XX PW2815 PW2312B LDODC/DC全方案 一、24V稳压方案概述 24V直流电源在工业自动化、门禁系统、电梯控制、汽车电子、LED驱动、监控设备等场景中应用极广,是最常见的中压直流母线电压。要将24V母线稳定降压至下游MCU、传感器…

2026/7/7 0:05:16 阅读更多 →
RAG+知识图谱混合检索与Graph RAG核心对比

RAG+知识图谱混合检索与Graph RAG核心对比

做企业RAG落地的团队,往往容易卡在一容易踩坑的选型难题: 当需求单纯靠向量RAG搞不定、单纯靠知识图谱也搞不定,必须同时依赖「文本语义理解 实体关系推理」时,到底是做「向量图谱混合检索」就够了,还是必须上「Grap…

2026/7/7 0:07:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/7 12:34:47 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻