-
Здравствуйте, помогите закрыть вкладку браузера Opera. Нахожу хендл окна оперы, пробую CloseWindow а она просто сворачивается и всё :(
function closewn (Wd: HWnd; Param: LongInt): Boolean; stdcall; var nm:array [0..255] of char; s,t:string; i:integer; f:boolean; begin GetWindowText(wd,nm,255); s:=string(nm); if s<>'' then begin f:=false; i:=1; t:=' - Opera'; while i<=length(s) do begin if t=copy(s,i,length(t)) then f:=true; i:=i+1; end;
// если нашли оперу if f=true then closewindow(wd); end; closewn := TRUE; end;
procedure TForm1.Button2Click(Sender: TObject); begin EnumWindows(@closewn, 0); // ищем оперу, чтобы закрыть текущую вкладку end;
-
значит при обработке опера сворачивает вкладку. попробуй SendMessage(wd, WM_CLOSE, 0, 0); или PostMessage да и вообще сначала надо в опере вкладку найти и взять ее хэндл.
-
не надо дескриптор вкладки. посылай в окно оперы сообщение о нажатии сочетания клавиш закрытия вкладки (CRTL+W), загугли Keyboard Events - первые 3 ссылки твои.
-
> пробую CloseWindow а она просто сворачивается и всё :(
А какую реакцию ты ожидаешь от выполнения CloseWindow?
-
С дочерними окнами оперы не все так просто. Там не обычные стандартные контролы.
|