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 回答