Windows API 模拟键鼠操作

移动鼠标位置

使用 SetCursorPos 可以移动鼠标位置:

1SetCursorPos(x, y);
查看全文

Windows API 读取屏幕图像(截图)

获取屏幕尺寸

1GetSystemMetrics(SM_CXSCREEN);  // 获取主显示器的逻辑宽度
2GetSystemMetrics(SM_CYSCREEN);  // 获取主显示器的逻辑高度

查看全文

Windows API 根据进程 ID 查找窗口的 HWND

在 Windows API 中,从进程 ID (PID) 获取窗口句柄 (HWND) 并没有一个直接的单一步骤函数(如 GetWindowByPid),因为一个进程可能拥有多个顶级窗口,也可能完全没有窗口。

通常的做法是枚举系统中的所有顶级窗口,并检查每个窗口所属的进程 ID 是否与目标 PID 匹配。

核心实现逻辑

最标准且高效的方法是使用 EnumWindows 函数。

查看全文

Windows IOCP 示例

这个示将接收到的数据原样返回给客户端:

1#include <WinSock2.h>
2#include <WS2tcpip.h>
3#include <MSWSock.h>
4#include <cstdio>
查看全文

Windows 程序添加图标

首先需要一个 ico 格式的图片,然后创建一个 .rc 的资源文件,内容如下:

1IDI_ICON1 ICON "icon.ico"

在 CMake 配置中将 .rc 资源文件添加到源码列表中:

查看全文

Windows 程序删除 CMD 窗口

需要将项目类型设为桌面程序。此时入口函数默认为 WinMainCRTStartup,它会在初始化后调用 WinMain 而不是 main。 可以将入口函数修改为 mainCRTStartup 来调研 main

VS 的链接选项:

1:/SUBSYSTEM:windows;/ENTRY:mainCRTStartup
查看全文