Domanda

Come faccio, utilizzando C # o C ++, inserire il testo nella casella di testo di un'altra applicazione? Ho fatto questo molto tempo fa e sembrava di ricordare qualcosa su come utilizzare l'HWND applicazioni. Ma dal momento che il cambiamento per ogni istanza dell'applicazione sento che fon't ricordo la storia completa. Ho in qualche modo ottenere un elenco di applicazioni in esecuzione, estrarre quello che voglio, ottenere il HWND da questo e poi ... hmm .... e poi? :)

È stato utile?

Soluzione

FindWindowEx () per trovare la maniglia ( HWND) e quindi inviare il WM_SETTEXT messaggio utilizzando SendMessage ()

Quando si utilizza FindWindowEx dovrai prima trovare l'impugnatura principale finestra utilizzando il nome della classe. Allora si avrà bisogno di trovare la maniglia di qualsiasi contenitore casella di testo è, chiamando FindWindowEx, passando il manico del genitore (la finestra), e il nome della classe del contenitore. Sarà necessario ripetere questo fino a raggiungere la casella di testo. È possibile utilizzare uno strumento chiamato Spy ++ che viene installato per impostazione predefinita con Visual Studio per ispezionare l'applicazione di destinazione e scoprire la gerarchia dei contenitori (tutti gli oggetti sono realmente chiamati finestre nella API, ma sto chiamando loro contenitori in contrasto con la finestra di livello superiore) con i loro nomi di classi.

Altri suggerimenti

Poi SendMessage (), WM_SETTEXT

Invece di colpire una specifica applicazione si può solo inviare 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;            
    }

è possibile utilizzare classe Clipboard per ottenere lo stesso

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