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

0

Я пытаюсь отправить нажатия клавиш в неактивное окно (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:

Изображение 174551

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

  • 0
    Вероятно, сначала будет найдено другое окно с этим классом.
  • 0
    Как найти эту информацию? Спасибо.
Показать ещё 6 комментариев
Теги:
winapi
desktop
vlc
findwindow

1 ответ

0

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

HWND hwndWindowVLC = FindWindow(L"QWidget", L"VLC media player");
if (hwndWindowVLC)
{
    PostMessage(hwndWindowVLC, WM_CHAR, 'P', 0);
}
  • 0
    Я попробовал ваше предложение, но оно не работает. Это ничего не отправляет в VLC
  • 0
    @Raymond: какова цель отправки 'P' , чтобы VLC начать? Какова намеченная цель? У меня установлен VLC, но он ничего не делает, когда я набираю 'P' на клавиатуре, так чего же вы пытаетесь достичь?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню