我想知道的是,您如何为封闭源且没有任何公共API的GUI应用程序提供输入。
为了更简洁,让我们说你打开纸牌并希望通过一个程序来播放它。或者,为了实现基础,你有一个带有按钮的GUI应用程序,你想通过另一个程序点击它。
我知道这个问题有点模糊,但这是我能说的最好的问题。请帮助我进行一些编辑或一些评论,以使其更具体。
答案 0 :(得分:1)
调查SendInput()
。它可用于模拟鼠标移动和按键。
要使用其GUI找到Windows应用程序,您可以使用EnumWindows()
查找具有特定标题的窗口。这将提供一个Window句柄。要关注该窗口,您可以:
EnumWindows()
GetWindowRect()
获取窗口矩形的坐标SendInput()
将鼠标移动到窗口范围内,并使用SendInput()
模拟鼠标点击我曾经做过一次这样的事情,并且令人愤怒地难以做到。一旦你开始你的程序坐在你的手上:不要触摸鼠标或键盘。
(我不知道如何在Linux上做这样的事情)
答案 1 :(得分:0)
假设它是Linux中的X11应用程序,您可以将进程连接到命名管道的一端,然后在管道的另一端回显X-Input事件。