如何从服务应用程序中使用FindWindow()?

时间:2011-02-03 21:04:22

标签: delphi winapi

我需要使用vcl应用程序来传达服务应用程序。 我的旧应用程序是一个控制台和控制台通信vcl应用程序没有问题。 现在我将控制台应用程序迁移到srv应用程序。 旧的通信使用了FindWindow和SendMessage。

我知道我可以使用套接字或命名管道进行通信,但是,我现在不想更改结构,因为它会延迟迁移。

有人知道如何“修复”它吗?

TKS

3 个答案:

答案 0 :(得分:8)

FindWindow无法在Vista或Win7中使用服务,因为服务运行在与用户应用程序不同的桌面上;也不会发送SendMessage,因为你无法获得窗口句柄。这意味着如果您支持这些版本的操作系统,则必须在它们之间使用不同的通信方式。

答案 1 :(得分:1)

ControlService会代替SendMessage吗?我认为你应该能够将你现有的结构传递给它。

http://www.delphigroups.info/3/10/156645.html

答案 2 :(得分:1)

你无法解决它。服务现在在不同的会话中运行,无法访问用户的桌面。该解决方案是一个命名管道。