嘿,我有一个相当复杂的系列应用程序,这取决于在前台切换应用程序的能力.
我的问题是,在前台切换应用程序的每5或6次,只是无法将应用程序转发. GetLastError不报告任何问题.通常情况下,我在前台看到正确的应用程序闪存一会儿,那么以前的应用程序是可见的.
我有一个经理应用程序,我有源代码,它产生和控制大约4个我没有源代码的应用程序.它产生/控制的应用程序之一也是一个管理器,它可以生成/控制大约5个应用程序.
这是一种信息亭设计,所以用户甚至不需要键盘或鼠标,只需触摸屏.
我已经尝试过Win32调用的每一个组合来控制他们,我只是出于想法.
我的第一个尝试是:
SetWindowPos(hApp,HWND_TOPMOST,NULL,SWP_NOMOVE | SWP_NOSIZE); SetWindowPos(hApp,HWND_NOTOPMOST,SWP_NOMOVE | SWP_NOSIZE);
我的第二次尝试是:
SetForegroundWindow(hApp); SetActiveWindow(hApp); SetFocus(hApp);
我的第三个尝试:
DWORD dwThreadID = GetWindowThreadProcessId(hApp,NULL);
AttachThreadInput(dwThreadID,GetCurrentThreadId(),true);
SetForegroundWindow(hApp); SetActiveWindow(hApp); SetFocus(hApp); AttachThreadInput( dwThreadID,false);
我的第四个尝试:
DWORD dwThreadID = GetWindowThreadProcessId(hApp,NULL); AttachThreadInput( dwThreadID,true); SetWindowPos(hApp,SWP_NOMOVE | SWP_NOSIZE); SetForegroundWindow(hApp); SetActiveWindow(hApp); SetFocus(hApp); AttachThreadInput( dwThreadID,false);
我觉得我在窗口切换时缺少一个重要的窍门.我知道只有前台进程可以切换窗口,但是由于我的主要经理程序正在产生并启动我需要控制的所有其他进程,我觉得它应该能够移动这些窗口.我真的在枪下完成这个(整个星期整夜),任何建议或建议是非常感谢.谢谢!