Я пытаюсь отправить нажатия клавиш в неактивное окно (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, пожалуйста, дайте мне подсказку. Большое спасибо!
Окно VLC не имеет дочернего окна, чье имя класса QWidget, поэтому FindWindowEx()
завершится с ошибкой и вернет NULL. Окно VLC - это класс QWidget (WinSpy++ говорит вам столько же), поэтому попробуйте это вместо этого:
HWND hwndWindowVLC = FindWindow(L"QWidget", L"VLC media player");
if (hwndWindowVLC)
{
PostMessage(hwndWindowVLC, WM_CHAR, 'P', 0);
}
'P'
, чтобы VLC начать? Какова намеченная цель? У меня установлен VLC, но он ничего не делает, когда я набираю 'P'
на клавиатуре, так чего же вы пытаетесь достичь?