1

主にスクリーンキャプチャに使用されるプラグインがあります。ブラウザでロードします。ボタンをクリックすると、画面キャプチャが開始されたことを通知する小さなウィンドウが表示されます。

ここで、ブラウザも最小化します。

私は次のアプローチを試しました:

アプローチ 1.

HWND parentWH = ::FindWindow(L"Chrome_WidgetWin_1", L"test - SC1 - Google Chrome");

::ShowWindow(parentWH,SW_MINIMIZE);

できます!しかし問題は、FindWindow のパラメーターを動的に取得するにはどうすればよいかということです。同様に、parameter1 は「WindowClassName」、2 は「WindowTitle」です。異なるブラウザ用。

アプローチ 2。

HWND parentWH = ::GetAncestor(this->pluginWindowHandle,GA_ROOTOWNER);
::ShowWindow(parentWH,SW_MINIMIZE);

動作しません!

4

2 に答える 2

1

スクリーン キャプチャの開始に使用したプラグインを含むブラウザ ウィンドウを最小化するには、次の手順をお勧めします。

  1. プラグインを埋め込むページの document.title (JavaScript) をプラグインに渡します。

  2. WinApi dll でEnumWindowsProcコールバック関数を作成します。この関数は、呼び出されるたびに HWND が与えられます。この関数内でGetWindowText関数を使用して、ブラウザーからの document.title が現在の HWND に対応するタイトルの部分文字列であるかどうかを確認する必要があります。そうである場合は、 ShowWindowを使用して現在の HWND を最小化できます。キャプチャ後に復元する場合は、HWND を保存して、後で再度使用できます。一致するものが見つかった場合は FALSE を返し、そうでない場合は TRUE を返します。

  3. EnumWindows関数を使用して、システム上のウィンドウを列挙します。これに、上記のコールバック関数へのポインターを渡します。EnumWindows は、コールバック関数が FALSE を返すか、すべてのウィンドウを列挙するまで実行されます。

于 2013-07-11T13:31:47.753 に答える