gpt4 book ai didi

c++ - C++ 可以用于与正在运行的应用程序交互吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:25:10 25 4
gpt4 key购买 nike

我正在尝试使用 C++ 并构建某种可以与其他窗口交互的桌面应用程序。类似于窗口平铺管理器(例如,最小化当前窗口、将窗口捕捉到网格中等)。这可能在 C++ 中完成吗?我只使用过命令行,那么是否有适合此类工作的良好框架?任何方向正确的事情或我如何能完成这样的事情都会很棒。

最佳答案

在 Windows 中

您可以使用 EnumWindows 遍历每个窗口。它从最顶层的窗口开始并向下移动。以下代码将遍历每个可见 窗口并打印出窗口的文本。

#include <windows.h>
#include <stdio.h>

BOOL CALLBACK EnumWindowsProc(HWND hWnd, long lParam) {
char buff[255];

if (IsWindowVisible(hWnd)) {
GetWindowText(hWnd, (LPSTR) buff, 254);
printf("%s\n", buff);
}
return TRUE;
}

int main() {
EnumWindows(EnumWindowsProc, 0);
return 0;
}

由于您拥有每个窗口的句柄,您可以通过向它们发送消息来进行进一步的操作。


我创建了一个名为 Desktop Playground 的工具来处理窗口和形状 正是使用了这种方法。

我生成一个线程并将每个窗口及其坐标和大小存储在哈希表中。然后我遍历并将它们的当前位置和大小与之前的位置和大小进行比较,并执行回调让我的主线程知道窗口是否被CreatedMovedReiszed ,或已销毁

关于c++ - C++ 可以用于与正在运行的应用程序交互吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18023668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com