如何找到当前拥有焦点的程序?

10

我怎么知道哪个进程有当前的焦点?

编辑:Windows操作系统,从XP到7的任何版本


你试图解决什么问题,你认为当前关注的程序会对此有所帮助? - Raymond Chen
@Raymond Chen,我想原型化一个系统,记录当前打开的窗口,从中确定实际运行的程序(例如Spotify),一旦知道该信息,就会捕获/记录键盘输入并执行操作(例如,记录搜索的歌曲)。顺便说一句,感谢您的编辑。 - Fabian
1
所以你想制作一个可以针对任何进程的键盘记录器 ;-) - AJG85
在这种情况下,获取焦点窗口是错误的问题。您真正想要记录输入,无论输入目标是否为焦点。 (由于异步输入,它可能是非聚焦的。)但即使如此,您也在以太低的级别记录,因为您将不得不解码换档状态、IME、手写识别等。相反,使用辅助功能接口从输入框中获取文本。当然,请注意,您需要为每个目标应用程序使用自定义版本,因为Spotify和iTunes具有不同的输入模型。 - Raymond Chen
3个回答

11

你是对的。这就是我想建议的API..删除我的答案和+1 - AJG85

2

1

首先要使用WinAPI函数EnumProcesses(也许还有OpenProcess)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接