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 のクラス名を取得しました。

画像

私を助けてください。何が問題なのか、または VLC の正しいクラス ウィンドウ名の名前が何であるかを知っている場合は、ヒントを教えてください。どうもありがとう!

4

1 に答える 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);
}
于 2013-11-28T07:55:25.780 に答える