Come posso utilizzare EnumWindows per trovare windows con una didascalia / titolo specifici?

Sto lavorando su un’applicazione che alla fine sarà una API per guidare i test dell’interfaccia utente per un’applicazione WPF.

A un certo punto del test iniziale su cui stiamo lavorando, otteniamo 2 popup di sicurezza di Windows. Abbiamo un codice che esegue il ciclo di 10 volte, ottiene l’handle di uno dei popup usando il metodo FindWindowByCaption e inserisce le informazioni e fa clic su OK.

9 volte su 10 funziona bene, tuttavia occasionalmente vediamo quello che sembra essere una condizione di gara. Il mio sospetto è che il ciclo inizi quando solo una delle windows è aperta e mentre entra nelle informazioni la seconda si apre e ruba la messa a fuoco; dopo questo si blocca all’infinito.

Quello che mi chiedo è se esiste un metodo per ottenere tutti gli handle della finestra per una determinata didascalia, in modo che possiamo aspettare fino a quando non ci sono 2 prima di iniziare il ciclo.