Отправить нажатия клавиш в свернутом VLC

Я пытаюсь отправить нажатия клавиш в неактивное окно (VLC Media Player). Я использую C++

Ниже приведен код, который я пробовал:

HWND hwndWindowTarget;

HWND hwndWindowVLC = FindWindow(NULL, L"VLC media player");
if (hwndWindowVLC)
{
    // Find the target class window within VLC.
    hwndWindowTarget = FindWindowEx(hwndWindowVLC, NULL, L"QWidget", NULL);
    if (hwndWindowTarget)
    {
        PostMessage(hwndWindowTarget, WM_CHAR, 'P', 0);
    }
}

Это хорошо работает для блокнота. Я не знаю, что не так. Наиболее вероятно из-за имени цели окна на findwindowex.

Я использовал WinSpy++, чтобы получить имя класса VLC:

образ

Пожалуйста, помогите мне. Если вы знаете, что не так или как может быть имя правильного имени окна класса для VLC, пожалуйста, дайте мне подсказку. Большое спасибо!

1 ответ

Окно VLC не имеет дочернего окна с именем класса QWidget, поэтому FindWindowEx() потерпит неудачу и возвратит NULL. Само окно VLC является классом QWidget (WinSpy++ говорит вам об этом), поэтому попробуйте это:

HWND hwndWindowVLC = FindWindow(L"QWidget", L"VLC media player");
if (hwndWindowVLC)
{
    PostMessage(hwndWindowVLC, WM_CHAR, 'P', 0);
}
Другие вопросы по тегам