Что нового

Проверка запуска Internet Explorer

Asgaroth

Новичок
Сообщения
5
Репутация
0
В скрипте одна из пользовательских функций запускает IE
($oIE = _IECreate)
Другая функция передает фокус IE
(_IEAction ($oIE, "focus"))

Извините за тупость, но как перед передачей фокуса сделать проверку на существование ранее созданного IE?
 

killbond

Осваивающий
Сообщения
96
Репутация
32
Код:
#include <IE.au3>
$oIE = _IECreate ("www.autoitscript.com")
If ProcessExists ( "IEXPLORE.EXE" ) then
	_IEAction ($oIE, "focus")
	; ... some code
EndIf
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
У меня так получается:

Код:
#include <IE.au3>

_IECreate("http://www.mail.ru/")
If WinWait("[CLASS:IEFrame]", "@MAIL.RU: почта, новости, работа", 3) <> 0 Then
	MsgBox(0, "", "OK")
Else
	MsgBox(0, "", "NO")
EndIf
 
Автор
A

Asgaroth

Новичок
Сообщения
5
Репутация
0
killbond сказал(а):
Код:
#include <IE.au3>
$oIE = _IECreate ("www.autoitscript.com")
If ProcessExists ( "IEXPLORE.EXE" ) then
	_IEAction ($oIE, "focus")
	; ... some code
EndIf
Думал об этом, но в таком случае проверка будет пройдена, если IE был запущен пользователем, а не скриптом
 

killbond

Осваивающий
Сообщения
96
Репутация
32
Думал об этом, но в таком случае проверка будет пройдена, если IE был запущен пользователем, а не скриптом
Хм... т.е. если окно запушено скриптом, проверка не будет пройдена? А как же это:

Код:
#include <IE.au3>
$oIE = _IECreate ("www.autoitscript.com")
If ProcessExists ( "IEXPLORE.EXE" ) then
    _IEAction ($oIE, "focus")
Else
	MsgBox (16 , "", "Process not found!")
EndIf


Если проверку не пройдет, то выскочит MsgBox.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
Asgaroth
Я свой пример поправил. Наверное, на Вашей странице тоже есть какой-то текст.
 
Автор
A

Asgaroth

Новичок
Сообщения
5
Репутация
0
killbond сказал(а):
Думал об этом, но в таком случае проверка будет пройдена, если IE был запущен пользователем, а не скриптом
Хм... т.е. если окно запушено скриптом, проверка не будет пройдена? А как же это:

Код:
#include <IE.au3>
$oIE = _IECreate ("www.autoitscript.com")
If ProcessExists ( "IEXPLORE.EXE" ) then
    _IEAction ($oIE, "focus")
Else
	MsgBox (16 , "", "Process not found!")
EndIf


Если проверку не пройдет, то выскочит MsgBox.
Это все верно, но если до запуска скрипта IE уже был запущен, то процесс будет висеть, соответственно _IEAction попытается передать фокус несуществующему $oIE


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

madmasles сказал(а):
Asgaroth
Я свой пример поправил. Наверное, на Вашей странице тоже есть какой-то текст.
О! Вот это хорошая идея, спасибо.
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
При запуске пусть скрипт проверит, запущен IE или нет. Если запущен, то передаст ему фокус, если нет, то сам запустит и передаст фокус.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
Garrett
именно для этих целей есть флаг $f_tryAttach = 1 при вызове функции
Код:
_IECreate("about:blank", 1)
 
Автор
A

Asgaroth

Новичок
Сообщения
5
Репутация
0
Kaster сказал(а):
Garrett
именно для этих целей есть флаг $f_tryAttach = 1 при вызове функции
Код:
_IECreate("about:blank", 1)
О, спасибо.
Из-за плохого знания английского не обратил внимания на эту опцию.


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

Всем спасибо, тему можно считать решенной.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
Asgaroth [?]
тему можно считать решенной
ну это в твоих силах. жмакай на соответствующую кнопку под сообщениями
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
Kaster сказал(а):
Garrett
именно для этих целей есть флаг $f_tryAttach = 1 при вызове функции
Код:
_IECreate("about:blank", 1)
Именно этот параметр я имел ввиду. То есть при запуске скрипт сначала проверит, запущен IE или нет, и если запущен, передаст ему фокус, ели нет, то запустит, и передаст фокус. Видимо не удачно выразился. Извиняюсь. :smile:
 
Верх