将歌剧窗口带到前面!

时间:2010-04-25 12:29:42

标签: windows window opera pascal

请问你能帮我弄清楚如何使用班级名称将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) ;
////////////////////////////////////////////////////

1 个答案:

答案 0 :(得分:0)

看看Opera 10.50,OpWindow类有多个窗口,其他窗口似乎是隐藏的,所以你应该在循环中运行FindWindow(Ex)或使用EnumWindows并搜索,直到找到一个可见的OpWindow窗口。 (当Opera进入托盘时,这可能会导致问题)

所以,如果没有实际测试,我猜你必须寻找一个可见的OpWindow窗口,或者一个非空标题的OpWindow窗口(或者寻找具有特定样式的OpWindow(WS_OVERLAPPEDWINDOW或WS_EX_WINDOWEDGE)) )

还应该注意的是,所有这些都是内部歌剧细节,可能会在下一个版本中发生变化等。