Это работает для меня в sqlite3:
SELECT *, MAX(rev) FROM t1 GROUP BY id
С * вы получаете дублированный столбец rev, но это не большая проблема.
Используйте FindWindowEx () , чтобы найти дескриптор (HWND), а затем отправить сообщение WM_SETTEXT с помощью SendMessage ()
При использовании FindWindowEx вам необходимо сначала найти дескриптор главного окна, используя его имя класса. Затем вам нужно будет найти дескриптор любого контейнера, в котором находится текстовое поле, вызывая FindWindowEx, передавая дескриптор родителя (окна) и имя класса контейнера. Вам нужно будет повторить это, пока не дойдете до текстового поля. Вы можете использовать инструмент под названием Spy ++ , который по умолчанию устанавливается Visual Studio для проверки целевого приложения и определения иерархии контейнеров (все объекты действительно называются окнами в API, но я их вызываю контейнеры в отличие от окна верхнего уровня) с именами классов.
Вместо таргетинга на конкретное приложение вы можете просто отправить нажатия клавиш в текстовое поле.
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;
}
вы можете использовать класс ClipBoard для достижения того же