1

我有一个简单的程序,它在传递给 EnumChildWindows 的回调中使用 FindWindowEx 和 strncmp() 来查找由第三方应用程序创建的对话框,然后按下按钮。

这段代码在我的 Windows 7 Ultimate PC 上运行良好,但如果我在 Windows Server 2003 上运行它就不再工作了。

我使用了 Spy++,窗口标题和文本是相同的。关于 Server 2003,我是否遗漏了一些可能会破坏这一点的东西?(DEP 和 UAC 已关闭,这是一台测试 PC;我也在 RDP 会话中运行它)

这是我对 FindWindowEx 的调用:

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

标题是 (TCHAR[]) 常量。

4

2 回答 2

1

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

于 2011-06-30T16:28:15.257 回答
0

解决了。

@sebf:2011 年;支持Unicode,笨蛋!

于 2011-07-05T09:51:47.230 回答