Sto provando a fare clic su un pulsante utilizzando invoke pattern.Microsoft UI Automation: Invoke Pattern Exception
Getta COMException e non riesco a capire perché?
Quando si esegue questo codice, il pulsante viene effettivamente premuto e la funzionalità funziona correttamente. Ma poi si ferma per un po 'e lancia questa eccezione.
Inoltre, se si tratta di un'operazione effettivamente funzionante, allora perché preoccuparsi di catturare l'eccezione e procedere con il flusso come è .... Questo è nel caso in cui non si ottiene una soluzione solida come la roccia –
Ho effettivamente lo stesso comportamento in un'applicazione che sto tentando di manipolare con UIAutomation. Nel mio caso, questo succede con i pulsanti Winform che aprono le finestre di dialogo di Winforms (credo che possano essere finestre di messaggi). Il thread chiamante si blocca per esattamente 1 minuto e quindi genera l'eccezione "0x80040201 - Un evento non è stato in grado di richiamare nessuno degli abbonati." Ho testato questi pulsanti con lo strumento Inspect.exe e mentre non riesco a vedere l'eccezione, mostra un comportamento simile, vale a dire blocca per un minuto dopo aver chiamato Invoke (anche se l'invocazione viene eseguita correttamente). –
È un pulsante Winforms standard o è una cosa speciale? Hai qualche codice di riproduzione? 0x80040201 è UIA_E_ELEMENTNOTAVAILABLE, quindi potrebbe trattarsi di un problema relativo alle condizioni della competizione, come se alcuni codici (nell'app) distruggessero il pulsante troppo presto prima che tutte le comunicazioni fossero terminate tra l'app UIA e l'app di destinazione. –