Что нового

[Окна, Диалоги] Открытие URL ссылок в окне программы

Сообщения
31
Репутация
-4
Можна как то с помощью Autoit скрипта открить силку в самом окне программы. Просмотреть ссылку как через браузер?
Зарание спасибо!
 

Fever

Скриптер
Сообщения
308
Репутация
112
Код:
$IE = ObjCreate("Shell.Explorer.2")

GUICreate("", 400, 300)
GUICtrlCreateObj($IE, 10, 10, 380, 280)
GUISetState()

$IE.navigate("http://autoit-script.ru")

Do
Until GUIGetMsg() = -3
 
Автор
Б
Сообщения
31
Репутация
-4
Если не сложно то еще объясните как там прописать кнопки назад вперёд обновить?
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
БЕШАННЫЙ сказал(а):
Если не сложно то еще объясните как там прописать кнопки назад вперёд обновить?

Почему у тебя такое упорное нежелание залезть в справку? См. пример для GUICtrlCreateObj(), там есть ответы на все твои вопросы.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
OffTopic:
Yashied [?]
Почему у тебя такое упорное нежелание залезть в справку?
говорю же, уж больно почерк знаком. или у меня развилась паранойя ;D
 
Автор
Б
Сообщения
31
Репутация
-4
Вот что у меня получилось после работы со справкой.
Но всё равно кнопки не работают!
Код:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=

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

GUICreate("Браузер", 1600, 950)
GUICtrlCreateObj($IE, 0, 25, 1590, 900)
$GUI_Button_Back    = GuiCtrlCreateButton   ("Back",     300, 0, 100,  24)
$GUI_Button_Forward = GuiCtrlCreateButton   ("Forward", 0, 0, 100, 24)
$GUI_Button_Home    = GuiCtrlCreateButton   ("Home",    96, 0, 100,  24)
$GUI_Button_Stop    = GuiCtrlCreateButton   ("Stop",    200, 0, 100,  24)

GUISetState()

$IE.navigate("http://www.google.ru/")

Do
Until GUIGetMsg() = -3


While 1
    $msg = GUIGetMsg()
    
    Select
        Case $msg = $GUI_EVENT_CLOSE
            ExitLoop
        Case $msg = $GUI_Button_Home
            $oIE.navigate("http://www.google.ru")
        Case $msg = $GUI_Button_Back
            $oIE.GoBack
        Case $msg = $GUI_Button_Forward
            $oIE.GoForward
        Case $msg = $GUI_Button_Stop
            $oIE.Stop
    EndSelect
    
Wend

GUIDelete ()

Exit

P.s. Можно узнать на кого я так сильно похож?
 

Fever

Скриптер
Сообщения
308
Репутация
112
БЕШАННЫЙ [?]
Вот что у меня получилось после работы со справкой.
Вы даже не пытались понять код, а просто скопировали всё ;)

Код:
#include <GUIConstantsEx.au3>

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

GUICreate("Браузер", 800, 400)
GUICtrlCreateObj($oIE, 0, 25, 1590, 900)
$GUI_Button_Back    = GuiCtrlCreateButton   ("Back",     300, 0, 100,  24)
$GUI_Button_Forward = GuiCtrlCreateButton   ("Forward", 0, 0, 100, 24)
$GUI_Button_Home    = GuiCtrlCreateButton   ("Home",    96, 0, 100,  24)
$GUI_Button_Stop    = GuiCtrlCreateButton   ("Stop",    200, 0, 100,  24)

GUISetState()

$oIE.navigate("http://www.google.ru/")

While 1
    $msg = GUIGetMsg()

    Select
        Case $msg = $GUI_EVENT_CLOSE
            ExitLoop
        Case $msg = $GUI_Button_Home
            $oIE.navigate("http://autoit-script.ru")
        Case $msg = $GUI_Button_Back
            $oIE.GoBack
        Case $msg = $GUI_Button_Forward
            $oIE.GoForward
        Case $msg = $GUI_Button_Stop
            $oIE.Stop
    EndSelect

Wend

GUIDelete ()

Exit
 

VladUs

Скриптер
Сообщения
621
Репутация
182
БЕШАННЫЙ

В Вашем примере лишнем является конструкция

Код:
Do
Until GUIGetMsg() = -3


Код программы выполняется всегда последовательно.
Т.е в данном случае

1.Вы создали объект
2.Вы создали форму.
3.Вы создали кнопки и разместили это все на форме
4.Запустили страничку
А потом идет цикл который ничего не делает а только ожидает нажатие крестика выхода из программы. И пока этот цикл не завершится (а завершится он только выходом из программы) остальной код не сработает. Можно было поместить остальные операторы и в этот цикл. Тогда это выглядело вот так

Код:
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>

Opt('MustDeclareVars', 1)

Example()

Func Example()
	Local $oIE, $GUIActiveX, $GUI_Button_Back, $GUI_Button_Forward
	Local $GUI_Button_Home, $GUI_Button_Stop, $msg
	
	$oIE = ObjCreate("Shell.Explorer.2")

	GUICreate("Embedded Web control Test", 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("Back", 10, 420, 100, 30)
	$GUI_Button_Forward = GUICtrlCreateButton("Forward", 120, 420, 100, 30)
	$GUI_Button_Home = GUICtrlCreateButton("Home", 230, 420, 100, 30)
	$GUI_Button_Stop = GUICtrlCreateButton("Stop", 330, 420, 100, 30)

	GUISetState()       ;Show GUI

	$oIE.navigate("http://www.google.ru/")
	
	Do
		$msg = GUIGetMsg()
		Select
			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
		
	Until $msg = $GUI_EVENT_CLOSE
	GUIDelete()
EndFunc   ;==>Example
 
Автор
Б
Сообщения
31
Репутация
-4
У меня еще такой вопрос!
Если некуда страницы листать ни вперед не назад вылетает ошибка и закрывает скрипт!
Можно как то избежать этого?
 

VladUs

Скриптер
Сообщения
621
Репутация
182
БЕШАННЫЙ
БЕШАННЫЙ сказал(а):
Если некуда страницы листать ни вперед не назад вылетает ошибка и закрывает скрипт!Можно как то избежать этого?
Тогда код будет выглядить немного по другому
Просто кнопки делаем неактивными, если страницу некуда листать
Вот так :

Код:
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>

Global $GUI_Button_Back, $GUI_Button_Forward,$Command , $Enable
Global Const $CSC_UPDATECOMMANDS = 0xFFFFFFFF
Global Const $CSC_NAVIGATEFORWARD = 0x00000001
Global Const $CSC_NAVIGATEBACK = 0x00000002

    Local $oIE, $GUIActiveX
    Local $GUI_Button_Home, $GUI_Button_Stop, $msg
    
    $oIE = ObjCreate("Shell.Explorer.2")

    GUICreate("Embedded Web control Test", 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("Back", 10, 420, 100, 30)
    $GUI_Button_Forward = GUICtrlCreateButton("Forward", 120, 420, 100, 30)
    $GUI_Button_Home = GUICtrlCreateButton("Home", 230, 420, 100, 30)
    $GUI_Button_Stop = GUICtrlCreateButton("Stop", 330, 420, 100, 30)
	ControlDisable("","",$GUI_Button_Back)
	ControlDisable("","",$GUI_Button_Forward )
    GUISetState()       ;Show GUI
	
$oSinkObject = ObjEvent($oIE, "IEEvent_", "DWebBrowserEvents") ;создаем обЪект для регистрации событий

    $oIE.navigate("http://www.google.ru/")

    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()
 
; Функция обработки события _CommandStateChange в браузере
Func IEEvent_CommandStateChange($command, $enable)
    Switch $command
        Case $CSC_NAVIGATEBACK
            If $enable = True Then
				ControlEnable("","",$GUI_Button_Back)
			Else
				ControlDisable("","",$GUI_Button_Back)
            EndIf
        Case $CSC_NAVIGATEFORWARD
            If $enable = True Then
                ControlEnable("","",$GUI_Button_Forward)
			Else
				ControlDisable("","",$GUI_Button_Forward )
			EndIf
    EndSwitch
EndFunc
 
Автор
Б
Сообщения
31
Репутация
-4
Последний вопрос!
Можете в этот же скрипт накинуть 2 - 3 кнопки на подобе кнопики Home чтобы я приблизительно видел как их ставить!
 

VladUs

Скриптер
Сообщения
621
Репутация
182
БЕШАННЫЙ
БЕШАННЫЙ сказал(а):
Можете в этот же скрипт накинуть 2 - 3 кнопки на подобе кнопики Home чтобы я приблизительно видел как их ставить!
Код:
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>

Global $GUI_Button_Back, $GUI_Button_Forward,$Command , $Enable
Global Const $CSC_NAVIGATEFORWARD = 0x00000001
Global Const $CSC_NAVIGATEBACK = 0x00000002

    Local $oIE, $GUIActiveX
    Local $GUI_Button_Home, $GUI_Button_Stop, $msg
    
    $oIE = ObjCreate("Shell.Explorer.2")
    GUICreate("Embedded Web control Test", 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("Back", 10, 420, 100, 30)
    $GUI_Button_Forward = GUICtrlCreateButton("Forward", 120, 420, 100, 30)
    $GUI_Button_Home = GUICtrlCreateButton("Home", 230, 420, 100, 30)
    $GUI_Button_Stop = GUICtrlCreateButton("Stop", 330, 420, 100, 30)
	$GUI_Button_Exit = GUICtrlCreateButton("Exit",10, 460, 100, 30)
	$GUI_Button_More = GUICtrlCreateButton("Еще кнопка",120, 460, 100, 30)
    ControlDisable("","",$GUI_Button_Back)
    ControlDisable("","",$GUI_Button_Forward )
    GUISetState()       ;Show GUI
    
ObjEvent($oIE, "IEEvent_");, "DWebBrowserEvents") ;создаем обЪект для регистрации событий

    $oIE.navigate("http://www.google.ru/")

    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
			Case $msg = $GUI_Button_Exit
                exit
			Case $msg = $GUI_Button_More
                MsgBox(1,"","Вот еще кнопка")
        EndSelect
        
    wend
    GUIDelete()
 
; Функция обработки события _CommandStateChange в браузере
Func IEEvent_CommandStateChange($command, $enable)
    Switch $command
        Case $CSC_NAVIGATEBACK
            If $enable = True Then
                ControlEnable("","",$GUI_Button_Back)
            Else
                ControlDisable("","",$GUI_Button_Back)
            EndIf
        Case $CSC_NAVIGATEFORWARD
            If $enable = True Then
                ControlEnable("","",$GUI_Button_Forward)
            Else
                ControlDisable("","",$GUI_Button_Forward )
            EndIf
    EndSwitch
EndFunc
 
Верх