Domanda

Ho un'applicazione C# con moduli Windows, usando la quale devo automatizzare l'apertura di un file utilizzando un software interno (MySoftware). Ho il seguente codice come di seguito. La mia comprensione è che WinWaitactive () dovrebbe aspettare fino a quando non faccio clic sulla finestra del software interno (MySoftWarewindow) e renderlo attivo, prima che il codice passino alla riga successiva e apra il file XML specificato (riga 6 in codice seguente). Invece ciò che sta accadendo è che la riga di codice successiva è eseguita anche prima che io possa rendere attivo il software interno, eseguendo così il pulsante Apri (riga 6 nel codice seguente) sulla finestra attiva corrente, che in questo caso è il modulo di domanda C# . Cosa pensi che stia andando storto qui? Grazie!

 aut = new AutoItX3Lib.AutoItX3Class();
 aut.WinWaitActive("mySoftwareWindow", "", 1);
 aut.WinMenuSelectItem("mySoftwareWindow", "", "&File", "&Open", "", "", "", "", "", "");
 aut.Send("C:\\test.xml", 0);
 //click the Open button
 aut.Send("!o", 0);
 aut.Send("{ENTER}", 0); 
È stato utile?

Soluzione

Il timeout è molto Short, 1 secondo non è abbastanza. Crea time-out almeno 10 volte il caso peggiore, vai per almeno 20 qui. E Assicurati di controllare il valore di restituzione della funzione, non ha senso continuare se ha restituito il fallimento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top