使用FindWindowEx的程序停止在Server 2003上工作,为什么?

时间:2011-06-30 07:41:36

标签: c++ winapi windows-7 windows-server-2003 findwindow

我有一个使用FindWindowEx& amp;的简单程序。 strncmp()在传递给EnumChildWindows的回调中,找到第三方应用程序创建的对话框,然后按一个按钮。

此代码在我的Windows 7 Ultimate PC上运行正常,但如果我在Windows Server 2003上运行它就不再有效了。

我使用过Spy ++,窗口标题和文字是相同的。有没有关于Server 2003的东西可能会破坏这个? (DEP和UAC关闭,这是一个测试PC;我也在RDP会话中运行它)

这是我对FindWindowEx的调用:

parentWindow = FindWindowEx(NULL,NULL,NULL,(LPCSTR)caption);

标题是(TCHAR [])常量。

2 个答案:

答案 0 :(得分:1)

第三方应用程序是服务吗? Windows服务可以在与通过RDP登录的用户不同的会话下运行,因此由交互式服务创建的UI将出现在不同的窗口站(因此是不同的桌面,这就是您无法找到它的原因)。 / p>

答案 1 :(得分:0)

解决。

@sebf:2011年;支持Unicode,白痴!