请问你能帮我弄清楚如何使用班级名称将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) ;
////////////////////////////////////////////////////
答案 0 :(得分:0)
看看Opera 10.50,OpWindow类有多个窗口,其他窗口似乎是隐藏的,所以你应该在循环中运行FindWindow(Ex)或使用EnumWindows并搜索,直到找到一个可见的OpWindow窗口。 (当Opera进入托盘时,这可能会导致问题)
所以,如果没有实际测试,我猜你必须寻找一个可见的OpWindow窗口,或者一个非空标题的OpWindow窗口(或者寻找具有特定样式的OpWindow(WS_OVERLAPPEDWINDOW或WS_EX_WINDOWEDGE)) )
还应该注意的是,所有这些都是内部歌剧细节,可能会在下一个版本中发生变化等。