In che modo, utilizzando C# o C++, inserire del testo nella casella di testo di un'altra applicazione? L'ho fatto molto tempo fa e sembrava ricordare qualcosa sull'utilizzo delle applicazioni HWND. Ma da quel cambiamento per ogni istanza dell'applicazione sento che non ricordo la storia completa. In qualche modo ottengo in qualche modo un elenco di app in esecuzione, estraggo quello che voglio, prendo l'HWND da quello e poi ... hmm .... e poi? :)Inserimento di testo nella casella di testo di un'altra applicazione
risposta
Usa FindWindowEx() per trovare la maniglia (HWND) e quindi inviare il messaggio utilizzando WM_SETTEXTSendMessage()
Quando si utilizza FindWindowEx è necessario prima trovare l'handle della finestra principale usando il suo nome di classe. Quindi dovrai trovare l'handle di qualsiasi contenitore sia presente nella casella di testo, chiamare FindWindowEx, passare l'handle del parent (la finestra) e il nome della classe del contenitore. Dovrai ripetere questa operazione fino a raggiungere la casella di testo. È possibile utilizzare uno strumento chiamato Spy++ installato per impostazione predefinita con Visual Studio per ispezionare l'applicazione di destinazione e scoprire la gerarchia dei contenitori (tutti gli oggetti sono in realtà chiamati finestre nell'API, ma li chiamerò contenitori in contrasto con il top- finestra di livello) con i loro nomi di classe.
Poi SendMessage(), WM_SETTEXT
è possibile utilizzare classe Clipboard per ottenere lo stesso
ma questo comporterà utente gestione invece di esecuzione di codice – RvdK
Invece del targeting di un'app specifica è possibile inviare semplicemente sequenze di tasti al campo di testo.
private void button1_Click(object sender, EventArgs e)
{
System.Threading.Thread.Sleep(5000);
SendKeys.Send(send_text);
private void textBox1_TextChanged(object sender, EventArgs e)
{
send_text = textBox1.Text;
}
Gentilmente aggiungi anche qualche spiegazione – CodeWarrior
- 1. Segnaposto/Testo di esempio nella casella di testo per l'utente
- 2. Inserimento di schede in una casella di testo
- 3. Inserire il testo nella casella di testo WPF nella posizione di accento
- 4. Convalida nella casella di testo in WPF
- 5. WPF CommandParameter nella casella di testo
- 6. visualizzazione dell'immagine nella casella di testo
- 7. trascinare il file nella casella di testo
- 8. Cerca script nella casella di testo asp.net
- 9. itext testo multilinea nella casella di delimitazione
- 10. Ottenere testo da asp: casella di testo
- 11. Inserimento nella posizione di accento con una casella di testo Silverlight
- 12. Password casella di testo Text
- 13. C# - come impostare il testo nella casella di testo per mostrare un suggerimento quando la casella di testo è vuota?
- 14. Come abilitare l'inserimento nella casella di testo con Ctrl + v
- 15. Numero limite di righe nella casella di testo .net
- 16. Creazione di un controllo casella di testo WPF come casella di testo destinatario email di Outlook
- 17. inserimento di blocchi di testo in haml
- 18. Inserimento di un nuovo testo nella posizione del cursore data
- 19. larghezza casella di testo jeditable
- 20. Valore casella di testo ActiveX
- 21. Casella di testo HTML, testo di evidenziazione automatica
- 22. cambia automaticamente la direzione del testo della casella di testo
- 23. Modifica testo in una casella di testo nella diapositiva di PowerPoint
- 24. Testo di dissolvenza Jquery all'interno di una casella di testo e area di testo
- 25. Inserimento di testo dopo la posizione del cursore nel testo
- 26. Come recuperare testo dalla casella di testo nel widget Android?
- 27. Completamento automatico applicazione del valore non etichettato nella casella di testo
- 28. Deseleziona il testo in una casella di testo
- 29. JQuery Testo predefinito sulla casella di testo vuota
- 30. Previene il cursore lampeggiante nella casella di testo
Inoltre, potrebbe essere necessario aggiungere una chiamata al InvalidateRect come SendMessage sarebbe cambiare e vorrei vedere il valore nel Winspector ma il valore sul mio modulo è rimasto lo stesso , quindi InvalidateRect causerà il repaint –
Cosa succede se l'applicazione contiene più di una casella di testo e voglio leggere i dati da una casella di testo specifica. C'è un modo per distinguere il gestore delle caselle di testo? – MK446