Я пытаюсь отправить нажатия клавиш в неактивное окно (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);
}
Других решений пока нет …