无法为运行在windows 2008 R2远程桌面上的Delphi XE4 VCL 32位应用程序设置焦点

无法为运行在windows 2008 R2远程桌面上的Delphi XE4 VCL 32位应用程序设置焦点,delphi,windows-server-2008-r2,delphi-xe4,Delphi,Windows Server 2008 R2,Delphi Xe4,这对我来说是一个新的,从第一天起我就一直在使用Delphi(和之前的TP)。无论我尝试什么,我都无法让我的应用程序在启动后接收焦点。我需要能够向它发送击键,以自动化远程桌面负载测试过程。 应用程序启动后(从开始->运行…myApp.exe,或双击快捷方式),我必须在窗体具有焦点之前的某个位置实际单击该窗体。这是真的,即使它是唯一运行的应用程序。 我已经在formshow事件中添加了myform.setfocus、myedit.setfocus和类似的类型代码,但没有任何帮助。启动后,桌面具有焦点

这对我来说是一个新的,从第一天起我就一直在使用Delphi(和之前的TP)。无论我尝试什么,我都无法让我的应用程序在启动后接收焦点。我需要能够向它发送击键,以自动化远程桌面负载测试过程。 应用程序启动后(从开始->运行…myApp.exe,或双击快捷方式),我必须在窗体具有焦点之前的某个位置实际单击该窗体。这是真的,即使它是唯一运行的应用程序。 我已经在formshow事件中添加了myform.setfocus、myedit.setfocus和类似的类型代码,但没有任何帮助。启动后,桌面具有焦点,而不是应用程序。我错过了什么?我在其他操作系统上没有遇到过这个问题,所以这是2008年还是RDS的问题?还是我? 我已经解决了这个问题,只是添加了一个命令行参数,以便在流程启动时运行该流程,但我真的很想为将来的项目解决这个问题。
谢谢

您是否尝试过在FormShow中向自己发送自定义消息,并使用其消息处理程序设置焦点?香草vcl表单应用程序的行为相同?如果在应用程序启动后窃取焦点,可能还会发生其他情况?在主窗体上放置一个
计时器
,并在超时1秒后将其设置为
SetFocus
。@Johan,这不起作用。如果焦点已丢失,则只有用户或具有焦点的应用程序可以更改它。我没有尝试专门发送自定义消息,但我已尝试使用ruidcom.switchToWindow(“我的应用程序标题”,0)功能,该功能是我用于负载测试的远程桌面负载测试系统的一部分。它确实切换到了形式,也最大化了它,但接着又失去了焦点。因此,我现在再次尝试,同时也希望看看是否是负载测试软件真正夺回了焦点。