Domanda

Ho un browser Internet Explorer incorporato in un'applicazione Windows Form e non ho la possibilità di modificare il codice sorgente di questo modulo. Tuttavia, ho ottenuto un handle per la finestra di IE e posso eseguire varie funzioni SendInput . Se faccio clic su un controllo come posso sapere se era un TextBox , e quindi come posso inviare caratteri a quel TextBox ?

Ho bisogno di risposte che utilizzano un handle per la finestra di IE che ho già ottenuto per le mie altre funzionalità. La risposta di cui ho bisogno deve comportare un handle per la finestra di IE.

È stato utile?

Soluzione

Non puoi. I controlli su IExplore non sono più controlli di Windows: sono entità personalizzate rese da IExplore che sembrano semplicemente simili ai controlli di Windows effettivi.

L'unico modo per interagire con i controlli in una pagina Web è accedere al controllo activeX di Windows Internet Explorer, chiedere IID_IWebBrowser2 e, da quel momento, navigare nello spazio dei nomi del modello di oggetti del documento.

Se entro " non hanno la possibilità di modificare il codice sorgente di questo modulo " intendi che il tuo codice è in esecuzione in un processo completamente diverso, quindi hai un problema molto grande. Se sei nello stesso processo, c'è una buona probabilità che WinForms abbia un'API che potresti usare per forzare l'accesso a qualsiasi controllo activex sul suo hosting.

Data la tua scelta non ottimale della lingua per questo tipo di dev - c # - Non posso dare consigli su quanto sarà facile o possibile l'interoperabilità con i controlli activex.

Altri suggerimenti

http://watin.org/ ti offre molte possibilità di accedere ai browser web - non lo so se ciò include quelli incorporati in altre applicazioni.

In entrambi i casi, puoi ottenere ulteriori informazioni lì su come "automatizzare" una finestra del browser.

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