Скопируйте текст в другое приложение - PullRequest
0 голосов
/ 13 февраля 2020

Я хочу эмулировать устройство считывания штрих-кода и копировать содержимое (текст) штрих-кода из моего приложения в другое приложение.

Я только что нашел способ выбора окна приложения и вставки ключевого кода. Работает с клавишей F1 нормально, но с другой клавишей нет. (Я пробовал Tab и пробел) Я думаю, что Focus не находится в текстовой области.

HWND mywindow = ::FindWindow(NULL, L"test.txt - Editor");
uint keyCode;
QString str;
SetForegroundWindow(mywindow);


keyCode = VK_F1; // F1 key

PostMessage(mywindow, WM_KEYDOWN, keyCode, 0); // key down
PostMessage(mywindow, WM_KEYUP, keyCode, 0); // key up

1 Ответ

1 голос
/ 14 февраля 2020

Если содержимое является текстом, вы можете использовать SendMessage() для отправки WM_CHAR в целевое окно.

Также обратите внимание, что окно должно быть окно редактирования или другое дочернее окно, которое должно получить WM_CHAR, используйте Блокнот как пример:

#include <iostream>
#include <Windows.h>

int main()
{
    HWND hWndParent = FindWindowW(NULL, L"test.txt - Notepad");
    HWND hwnd = FindWindowExW(hWndParent, NULL, L"Edit", NULL);
    char str[] = "test_text";
    for (int i = 0; i < strlen(str); i++)
    {
        SendMessage(hwnd, WM_CHAR, str[i], 0);
    }
    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...