Что нового

Браузер IE в окне программы.

shift72

Новичок
Сообщения
86
Репутация
2
Как запихать браузер например IE в программу. Т.е. я делаю kлиkeр для koнтakта. В данный момент программа работает таким принципом.
Ищет окно с операой, выделяет его. Жмет в нем Ctrl + F, пишет мне нравится, жмет ентер, жмет ctrl + w вкладка закрывается.
То есть программа работает в фоновом режиме. Как сделать так чтоб программа открывала свой браузер и работала в нем самостоятельно.
Вот примерно как в этой программе http://www.youtube.com/watch?v=hWMBbNH5Fnk&feature=player_embedded
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,323
shift72,
Почитайте справку по функциям _IE*.
 
Автор
S

shift72

Новичок
Сообщения
86
Репутация
2
я так понимаю рыть нужно в сторону
Код:
GUICtrlCreateObj
 
Автор
S

shift72

Новичок
Сообщения
86
Репутация
2
такая проблема: когда я перехожу по некоторым ссылкам то страница открывается в новом окне. И уже не в теле программы. Как с этим бороться?
Пример:
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

; Простой пример: Встраивание объекта Internet Explorer внутри AutoIt GUI
;
; Смотрите также: http://msdn.microsoft.com/workshop/browser/webbrowser/reference/objects/internetexplorer.asp

Local $oIE, $GUIActiveX, $GUI_Button_Back, $GUI_Button_Forward
Local $GUI_Button_Home, $GUI_Button_Stop, $msg

$oIE = ObjCreate("Shell.Explorer.2")

; Создаёт простое GUI-окно для вывода
GUICreate("Тест вставленного объекта браузера", 640, 580, (@DesktopWidth - 640) / 2, (@DesktopHeight - 580) / 2, BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS, $WS_CLIPCHILDREN))
$GUIActiveX = GUICtrlCreateObj($oIE, 10, 40, 600, 360)
$GUI_Button_Back = GUICtrlCreateButton("Назад", 10, 420, 100, 30)
$GUI_Button_Forward = GUICtrlCreateButton("Вперёд", 120, 420, 100, 30)
$GUI_Button_Home = GUICtrlCreateButton("Домашняя", 230, 420, 100, 30)
$GUI_Button_Stop = GUICtrlCreateButton("Остановить", 330, 420, 100, 30)

GUISetState() ; показывает созданное окно

$oIE.navigate("http://autoit-script.ru/index.php/topic,11421.msg77672.html#msg77672")

; Запускается цикл опроса GUI до тех пор пока окно не будет закрыто
While 1
    $msg = GUIGetMsg()

    Select
        Case $msg = $GUI_EVENT_CLOSE
            ExitLoop
        Case $msg = $GUI_Button_Home
            $oIE.navigate("http://www.autoitscript.com")
        Case $msg = $GUI_Button_Back
            $oIE.GoBack
        Case $msg = $GUI_Button_Forward
            $oIE.GoForward
        Case $msg = $GUI_Button_Stop
            $oIE.Stop
    EndSelect

WEnd

GUIDelete()


кликаем на рекламу, открывается новая страница поверх программы. Как реализовать переход по ссылке внутри программы?
 

snoitaleR

AutoIT Гуру
Сообщения
855
Репутация
223
shift72
Чисто идея... Не знаю, пройдёт ли...
У тега A есть ключ TARGET... Можно попробовать подменить тег A и сделать его без ключа TARGET... Однако таким образом можно нарушить работу ссылок, работающих с фреймами...

Код:
_blank Load the linked document into a new blank window. This window is not named.  
_parent Load the linked document into the immediate parent of the document the link is in.  
_search Load the linked document into the browser's search pane. Available in Internet Explorer 5 or later.  
_self Load the linked document into the same window the link was clicked in (the active window).  
_top Load the linked document into the topmost window.
 
Автор
S

shift72

Новичок
Сообщения
86
Репутация
2
snoitaleR
ммммм... куда это все прописать? Я начинающий и что то не понял ничего =(
 

snoitaleR

AutoIT Гуру
Сообщения
855
Репутация
223
shift72
Попытался реализовать свою идею, но не срабатывает...
Либо идея неправильная, либо реализация...

Код:
; НАЧАЛО

 #Include <ie.au3>

 $GUI=GUICreate("",600,400)
 $oIE=_IECreateEmbedded()
 GUICtrlCreateObj($oIE,10,10,580,380)
 GUISetState()
 ToolTip('Ждите',@DesktopWidth,@DesktopHeight,'Загрузка страницы',2,4)
 _IENavigate($oIE,'http://yandex.ru/yandsearch?text=%D0%9B%D0%B8%D0%B7%D0%B8%D0%BD%D0%B3&lr=8')
 ToolTip('')
 $HTML=_IEBodyReadHTML($oIE)
 $HTML=StringReplace($HTML,'target="_blank"','target="_self"')
 _IEBodyWriteHTML($oIE,$HTML)
 
 While True
  $MSG=GUIGetMsg()
  Switch $MSG
   Case -3
    ExitLoop
  EndSwitch
 WEnd

; КОНЕЦ
 
Верх