【发布时间】:2012-11-06 08:30:50
【问题描述】:
我正在使用类似Get active window text (and send more text to it) 的代码将密钥发送到前台窗口。当我从控制台运行它时,它工作得很好。当我从我的服务运行它时,GetForegroundWindow() 调用返回 0(零)。如何从我的服务中获取前台窗口句柄?
编辑:一些研究告诉我有关作为不同会话运行的服务 - 如果这与我的问题有关,我需要知道如何获取控制台(物理监视器)会话的前台窗口(如果存在)。
编辑 #2:我的用例只涉及 XP。
【问题讨论】:
-
从 Windows Vista 开始,服务无法直接与控制台会话进行交互。但是,您可以在该会话中启动一个子流程来代表您完成工作。我建议您首先查找 WTSGetActiveConsoleSessionId。