В таком случае, вы можете пройтись по всем существующим окнам верхнего уровня. Что-то типаПо идее это можно сделать, обратившись к окну по индексу. Самое верхнее окно и по индексу идет первым. То есть что-то типаНеобходимо протестировать опцию AlwaysOnTop окна.
Как можно определить, какое окно в данный момент находится выше всех остальных окон, если оно не является активным в данный момент? (DeskTop.GetActive() не подходит)
Спасибо
AnyWin( "#1" )
или
MainWin( "#1" )
смотря, что за окно у вас там.
А уже получив данное окно, можно будет проверить различные атрибуты, по которым вы можете удостовериться, что это именно то окно, что вам нужно
Спасибо! На самом деле, очень красивое решение :-) А я уже полезла в dll.
Но проблема в том, что под тестируемым TopMost окном должно быть как минимум еще одно окно такого же типа (которое будет иметь #2, для чистоты эксперимента). Поскольку тестируемое приложение .Net, то на системе должно быть проинсталлировано еще одно .Net приложение для этого теста, а это уже не совсем удобно :-(
while( AnyWin( "#{i}" ).Exists() ) // Place your checkpoints here i++и проверять текст заголовка окна. Если у вас приложение работает в режиме Always on Top, то по идее первыми окнами будут именно окна тестируемого приложения.