我正在使用一些代碼,如Get active window text (and send more text to it)將密鑰發送到前臺窗口。當我從控制檯運行它時,它工作得很好。當我從我的服務運行它時,GetForegroundWindow()調用返回0(零)。我如何從我的服務中獲得前景窗口句柄?如何從Windows服務獲取前臺窗口?
編輯:一點研究告訴我關於作爲不同會話運行的服務 - 如果這與我的問題有關,我需要知道如何獲取控制檯(物理監視器)會話的前景窗口(如果存在)。
編輯#2:我的用例只涉及XP。
從Windows Vista開始,服務無法直接與控制檯會話進行交互。但是,您可以在該會話中啓動一個子流程來代表您完成工作。我建議你先查找WTSGetActiveConsoleSessionId。 –