Могу ли я заполнить текстовое поле приложения с помощью приложения C #? [Дубликат]

Это работает для меня в sqlite3:

SELECT *, MAX(rev) FROM t1 GROUP BY id

С * вы получаете дублированный столбец rev, но это не большая проблема.

9
задан inquam 27 December 2010 в 14:58
поделиться

4 ответа

Используйте FindWindowEx () , чтобы найти дескриптор (HWND), а затем отправить сообщение WM_SETTEXT с помощью SendMessage ()

При использовании FindWindowEx вам необходимо сначала найти дескриптор главного окна, используя его имя класса. Затем вам нужно будет найти дескриптор любого контейнера, в котором находится текстовое поле, вызывая FindWindowEx, передавая дескриптор родителя (окна) и имя класса контейнера. Вам нужно будет повторить это, пока не дойдете до текстового поля. Вы можете использовать инструмент под названием Spy ++ , который по умолчанию устанавливается Visual Studio для проверки целевого приложения и определения иерархии контейнеров (все объекты действительно называются окнами в API, но я их вызываю контейнеры в отличие от окна верхнего уровня) с именами классов.

13
ответ дан Xavier Poinas 25 August 2018 в 07:57
поделиться

Затем SendMessage (), WM_SETTEXT

3
ответ дан Hans Passant 25 August 2018 в 07:57
поделиться

Вместо таргетинга на конкретное приложение вы можете просто отправить нажатия клавиш в текстовое поле.

  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;            
    }
-2
ответ дан Roblox 25 August 2018 в 07:57
поделиться

вы можете использовать класс ClipBoard для достижения того же

-1
ответ дан TalentTuner 25 August 2018 в 07:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: