0

クラス名を使用して、Opera のウィンドウを前面に表示する方法を教えてください。次の手順を使用して他のアプリケーションを前面に表示すると、正常に動作します。ウィンドウのキャプションではなく、クラス名のみを使用する必要があります。代わりにウィンドウ キャプションを使用すると、手順は機能します。手順は次のとおりです。

procedure SwitchToThisWindow(h1: hWnd; x: bool); stdcall;
external user32 Name 'SwitchToThisWindow';

procedure Opera;
var
Wnd:HWND;
begin
Wnd:= FindWindow(PChar('OpWindow'),nil);
 if (Wnd <> 0) then SwitchToThisWindow(Wnd, True) ;
////////////////////////////////////////////////////
4

1 に答える 1

0

Opera 10.50 を見ると、OpWindow クラスを持つ複数のウィンドウがあり、他のウィンドウは隠されているように見えるので、FindWindow(Ex) をループで実行するか、EnumWindows を使用して、可視の OpWindow ウィンドウが見つかるまで検索する必要があります。(これは、Opera がトレイにあるときに問題を引き起こす可能性があります)

したがって、実際にテストせずに、表示されている OpWindow ウィンドウ、または空でないタイトルの OpWindow ウィンドウを探す必要があると思います (または、特定のスタイル (WS_OVERLAPPEDWINDOW または WS_EX_WINDOWEDGE) を持つ OpWindow を探している可能性があります)。

これはすべて内部オペラの詳細であり、次のバージョンなどで変更される可能性があることにも注意してください.

于 2010-04-25T17:04:00.627 に答える