以编程方式与Windows窗口进行交互

时间:2016-06-24 15:41:46

标签: windows api window

我想知道是否有办法以某种方式与Windows系统上当前打开的窗口进行交互。我有兴趣获得他们的一些属性,即:

  • 位置
  • 尺寸
  • 在后台吗?
  • 可能是窗口标题

最好,我想用Java做到这一点,但欢迎任何建议。

1 个答案:

答案 0 :(得分:1)

A comment链接到Java的良好资源。我将运行相关的Windows API,以防您希望使用C ++本地化。

要枚举系统中的所有顶级窗口,请使用EnumWindows。你给它一个签名为EnumWindowsProc的回调函数,所以它将接收每个窗口句柄作为第一个参数。

您可以使用GetWindowRect功能获取窗口位置(在屏幕坐标中)和尺寸。传入您收到的窗口句柄,然后输出LPRECT(指向RECT的指针)。

要确定窗口是否已最大化,请使用GetWindowPlacement并检查您收到的WINDOWPLACEMENT结构的showCmd字段。

最后,要获取窗口的标题,请使用GetWindowText。 (顺便说一句,如果你想在另一个进程中获取控件的文本,你需要自己发送WM_GETTEXT消息。)