小妹有有关问题啦,关于窗口消息的有关问题

小妹有问题啦,关于窗口消息的问题
情况如下:

给Svchost.exe进程插入一个DLL,该DLL负责建立一个窗口并相应特定的消息。

因为Svchost进程的特殊性,在Svchost进程下插入的dll建立的窗口是不能显示在桌面上的(用户看不见)。

然后,在Svchost进程中的这个dll载入另一个dll文件,分别称这两个DLL为1和2。

1dll将2dll载入之后,2dll发给1dll一个窗口消息,1dll成功响应。

但是我在桌面上运行另一个程序给1dll的窗口发送同样的消息,1dll建立的窗口根本无法得到消息,不能做出响应。

我想问一下,是不是Svchost进程下的窗口,不能接收其它进程发送的消息?

或者是有什么特殊的属性吗。

谢谢回答。

------解决方案--------------------
svchost是服务,与用户程序不在同一个WindowStation里面。
小妹你需要OpenWindowStation服务的WindowStation,再OpenDesktop相应的桌面。
这时候再发送消息即可。

by the way, 楼主不会是人妖吧?
------解决方案--------------------
纯粹是因为小妹你,哥才进来围观的,否则懒得说你

哥告诉你,线程的桌面环境问题,
你这个可能还不是跑在vista系统的,vista之后,桌面都切换不了了,session之间的窗口消息不好传递啊

xp、2003的话可以切换桌面环境(OpenDesktop SetThreadDesktop等api),窗口线程的桌面环境都切换一致了才可以窗口消息通讯,但是记得创建了窗口的线程是切换不了桌面环境的,你必须在该线程创建窗口前先切换好