是否有可能以编程方式单击Linux中另一个应用程序的按钮?

时间:2011-07-31 23:26:44

标签: c++ events porting xlib

是否可以将事件发送到特定小部件(例如按钮) 在Linux(X窗口系统)

我正在寻找与Linux的以下代码(使用Xlib)相当的

#include <windows.h>
int main()
{
  HWND WindowHandle;
  HWND ButtonHandle;

  WindowHandle = FindWindow(NULL, "File Download");
  ButtonHandle = FindWindowEx(WindowHandle, 0, "Button", "&Open");
  SendMessage (ButtonHandle, BM_CLICK, 0 , 0);

 return 0;
}

我猜可以通过XFetchName模拟FindWindow,但我不知道如何 按名称查找特定小部件的ID(FindWindowEx) 在我只知道小部件“名称”(即按钮的情况下的标题)的情况下。

我能这样做吗?

1 个答案:

答案 0 :(得分:0)

也许,使用XTest扩展程序:

http://www.x.org/releases/X11R7.5/doc/Xext/xtestlib.pdf

然而,没有可移植的方法来确定屏幕上的小部件是什么和不是小部件,因为一些GUI工具包将所有内容呈现为单独的X对象,而其他人首先进行自己的合成。