Así que sí, me encuentro en la dudosa posición de implementar una llamada SwitchToThisWindow
para forzar mi ventana al frente. Estoy de acuerdo, no es ideal, pero no siempre es posible argumentar en contra de las "características" del producto que otros consideran necesarias.SwitchToThisWindow envía la ventana actual a la parte posterior
Ahora, considero SwitchToThisWindow
ser una victoria sobre el AttachThreadInput
truco para hacer un interruptor de la ventana forzada como su menor probabilidad a un punto muerto, y debe ser eliminado SwitchToThisWindow
, o dejan de funcionar, no me quejaré.
Sin embargo, SwitchToThisWindow
tiene el desafortunado efecto secundario de empujar la ventana de primer plano actual al final del orden z además de llevar la ventana de destino a la parte superior cuando se pasa FALSE para el parámetro fAltTab, y no hacer nada si TRUE se pasa.
¿Cómo puedo evitar este comportamiento 'push current active to z-bottom' sin recurrir a AttachThreadInput
?
Alternativamente, MS puede simplemente eliminar AttachThreadInput
como una solución viable y puedo decirle a mi gerente que lo imposible, de hecho, es realmente imposible.
Supongo que no puede simplemente usar ['SetForegroundWindow'] (http://msdn.microsoft.com/en-us/library/ms633539.aspx)? No está claro exactamente qué característica del producto necesita implementar, excepto para traer una ventana al frente. 'SetForegroundWindow' incluso funciona para ventanas que están conectadas a otro hilo que el que está actualmente, pero sí requiere que su aplicación esté actualmente en primer plano. No puedo decir si eso es un problema aquí. –
Ese es el problema: pasar al primer plano incluso cuando el usuario tiene una aplicación diferente activa. –
Ya veo. Quieres ser una de * esas * aplicaciones. No es de extrañar que describa su posición como "no ideal". ¿No hay margen de maniobra para hacer las cosas de la manera "correcta" y mostrar un ícono de notificación o un deslizador de brindis? Muéstrele a su jefe: "[Los programas bien diseñados usan el área de notificación de forma apropiada, sin ser molestos o molestos.] (Http://msdn.microsoft.com/en-us/library/aa511448.aspx)" :-) –