我正在写一个键盘记录器类型的应用程序,我已经完成了所有的事情,我的问题是得到窗口标题,我不想每次按下一个键时写入窗口标题,我可以得到窗口标题,就像我知道的那样,但是如何在新窗口中将它写入日志呢?
答案 0 :(得分:1)
您可以维护所有窗口的内部列表(窗口句柄作为标识符以保持较低的内存使用率),当出现新的窗口时,您可以将其解压缩。
Win32 API(我假设您正在使用)具有以下功能:
EnumChildWindows
可用于此任务。呼叫
GetDesktopWindow
作为输入窗口句柄提供,您将获得在此桌面会话下创建的每个窗口。
我不确定这是否仍然可以通过RDP(Windows Vista +具有安全桌面以及普通客户端),但这取决于此功能对您的重要性。
答案 1 :(得分:0)
存储上一个窗口标题,如果当前窗口标题与上一个窗口标题不同,则打印新窗口标题并将上一个窗口标题设置为当前窗口标题。
如果有多个具有相同名称的窗口,则会失败,但它可能适合您的需要。
答案 2 :(得分:0)
无论何时检测到按键,请调用GetForegroundWindow
以获取当前聚焦窗口的句柄。将此值存储为程序中的变量,当它更改时,请调用GetWindowText
以获取窗口的标题并记录此标题。