在新窗口中获取窗口标题

时间:2011-10-31 03:05:03

标签: c++

我正在写一个键盘记录器类型的应用程序,我已经完成了所有的事情,我的问题是得到窗口标题,我不想每次按下一个键时写入窗口标题,我可以得到窗口标题,就像我知道的那样,但是如何在新窗口中将它写入日志呢?

3 个答案:

答案 0 :(得分:1)

您可以维护所有窗口的内部列表(窗口句柄作为标识符以保持较低的内存使用率),当出现新的窗口时,您可以将其解压缩。

Win32 API(我假设您正在使用)具有以下功能:

EnumChildWindows

可用于此任务。呼叫

GetDesktopWindow

作为输入窗口句柄提供,您将获得在此桌面会话下创建的每个窗口。

我不确定这是否仍然可以通过RDP(Windows Vista +具有安全桌面以及普通客户端),但这取决于此功能对您的重要性。

答案 1 :(得分:0)

存储上一个窗口标题,如果当前窗口标题与上一个窗口标题不同,则打印新窗口标题并将上​​一个窗口标题设置为当前窗口标题。

如果有多个具有相同名称的窗口,则会失败,但它可能适合您的需要。

答案 2 :(得分:0)

无论何时检测到按键,请调用GetForegroundWindow以获取当前聚焦窗口的句柄。将此值存储为程序中的变量,当它更改时,请调用GetWindowText以获取窗口的标题并记录此标题。