Что нового

Закрыть неизвестную вкладку

Anna

Новичок
Сообщения
119
Репутация
2
Здравствуйте.
Подскажите, пожалуйста, как закрыть вкладку, о которой ничего неизвестно, кроме того что, она лишняя. То есть, в окне недолжно быть вкладок.
 
Автор
A

Anna

Новичок
Сообщения
119
Репутация
2
На П.К IE8, на сервере IE9
Закрывать вкладки нужно на сервере, IE9, но там не установлен Autoit.
Поэтому, пишу скрипт на машине с IE8, а работать будет на IE9.
 
Автор
A

Anna

Новичок
Сообщения
119
Репутация
2
Ноутбук старенький(


Добавлено:
Сообщение автоматически объединено:

Решила попытаться просто закрыть активную вкладку.
Код:
#include <IE.au3>
#include <Array.au3>

$aList = WinList('[CLASS:IEFrame]', '')
;_ArrayDisplay($aList)

If IsArray($aList) Then
    $oIE = _IEAttach($aList[1][1], 'embedded', 1)
    ConsoleWrite(_IEPropertyGet($oIE, 'locationURL') & @LF)
	;WinClose($oIE)
   $oIE.Quit()
EndIf

Получаю ошибку “Требуемое действие с этим объектом потерпело неудачу”
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Код:
$oShell = ObjCreate("Shell.Application")
$oShellWindows = $oShell.Windows()
For $oWindow In $oShellWindows
	If StringInStr($oWindow.Name, 'Internet Explorer') Then
		$oWindow.Quit()
	EndIf
Next

Так закроет все IE, нужно как то ограничивать, что бы не закрывало не то.
 
Автор
A

Anna

Новичок
Сообщения
119
Репутация
2
inververs [?]
нужно как то ограничивать
Как?


Добавлено:
Сообщение автоматически объединено:

Как, записать условие:- “если вкладок больше одной то закрыть”
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Не знаю как, не понимаю что нужно сделать. У меня нельзя создать браузер без вкладок. Если закрыть последнею - все закроется, поэтому это:

Anna [?]
в окне недолжно быть вкладок.
невыполнимо
 
Автор
A

Anna

Новичок
Сообщения
119
Репутация
2
inververs
Разумеется, одна вкладка, с которой работает скрипт должна остаться.
Но это не вкладка, а окно без вкладок имхо.
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Но вы же написали, что в окне не должно остаться вкладок :D


Добавлено:
Сообщение автоматически объединено:

Вам нужен специалист по IE8
 
Автор
A

Anna

Новичок
Сообщения
119
Репутация
2
отредактировала предыдущий пост)
При запуске вашего примера, тоже получаю ошибку “Требуемое действие с этим объектом потерпело неудачу”
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
А ну еще можно попробовать вот так:
Код:
$oIe = _IEAttach('http://autoit-script.ru/', 'URL') ;допустим это ваш объект, ну вы знаете что тут, можно не атачить а использовать уже ранее созданный свой, поэтому тут могло и не быть этой строчки, но тогда вы бы написали что у меня в скрипте ошибка, т.к переменная $oIe не найдена, поэтому я вставил ее таким образом

Global $bzzz = ObjEvent("AutoIt.Error", 'protivnie_oshibki_lol')
$oShell = ObjCreate("Shell.Application")
$oShellWindows = $oShell.Windows()
For $oWindow In $oShellWindows
	If StringInStr($oWindow.Name, 'Internet Explorer') And $oWindow <> $oIe Then
		$oWindow.Quit()
	EndIf
Next
Func protivnie_oshibki_lol($oError)
EndFunc

Я конечно не знаю, все таки XP и IE8..
 
Автор
A

Anna

Новичок
Сообщения
119
Репутация
2
Ошибка потому что IE8?
 

Вложения

  • er.JPG
    er.JPG
    62.7 КБ · Просмотры: 18

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
А у вас на скрине ошибка в файле ...include\Ie.au3 в строчке 327.
У вас не работает вещь, которая должна работать везде. Это система барахлит.
 
Автор
A

Anna

Новичок
Сообщения
119
Репутация
2
Скомпилировала.
На сервере закрывает все вкладки и оставляет окно. УРА! Спасибо! :smile:

Однако, закрывает только вкладки открытые вручную, кликом по кнопке “Открыть новую вкладку”. Если вкладка открывается после клика по ссылке в основном окне, то не закрывается вкладка. :(

Настроила IE, открывать ссылки в новом окне, и банально, F4.
Код:
$aList = WinList('[CLASS:IEFrame]')
     If  $aList[0][0] > 1 Then
      Send("{ALT DOWN}{F4}{ALT UP}");
   EndIf
:smile:
 
Верх