Lasst doch daraus ein großes Projekt machen:
AutoBrowse
Der AutoIt Browser.
Vieleicht kann man sowas umsetzten
Also ich wär dabie
Lasst doch daraus ein großes Projekt machen:
AutoBrowse
Der AutoIt Browser.
Vieleicht kann man sowas umsetzten
Also ich wär dabie
wie heißt der befehl die inteadresse zu ermitteln vom aktuellen tab und wie aktualisiert man die seite also der befehl dafür
1. Ist in meinem Beispiel aufgeführt. _IEPropertyGet($oIE[$selection,"locationurl")
2. Guck dir die Hilfe zu _IEAction an.
also bei mir funktioniert alles bis auf das tab schließen:
Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
GUICtrlDelete ($oIE[$Zahl+1])
GUICtrlDelete (^ ERROR
bis jetzt siehts bei mir so aus
Local $Zahl = _GUICtrlTab_GetCurSel ($TabControl)
If $Zahl > -1 Then
_GUICtrlTab_DeleteItem($Tab, $Zahl)
GUICtrlDelete ($inetob1[$Zahl+1])
_GUICtrlTab_SetCurSel($Tab, _GUICtrlTab_GetItemCount($Tab) -1)
EndIf
wär nett wenn jemand helfen könnte :wacko:
Ich sehe in deinem Script kein $oIE. Stelle mal das ganze Script rein, wo das Array $inetob1 erstellt wird.
oIE:
Dim $oIE[1]Dim $oIE[1]
$oIE[0] = _IECreateEmbedded()
die wesentlichen teiler der gui:
$TabControl = GUICtrlCreateTab(0,80,760,520)
$Tab[0] = GUICtrlCreateTabItem("Tab"& " " & $taba)
$taba = $taba + 1
$inetob1 = GUICtrlCreateObj($oIE[0],0,105,(@DesktopWidth-10),(@DesktopHeight-200))
$oIE[0].navigate ($start)
$selected = GUICtrlRead($TabControl)
WinSetTitle($gui1,"", "Browser")
GUICtrlSetData ($Adress, $start)
GUISetState (@SW_SHOW)
und dann die auf der ersten seite genannte close func:
Local $Zahl = _GUICtrlTab_GetCurSel ($TabControl)
If $Zahl > -1 Then
_GUICtrlTab_DeleteItem($TabControl, $Zahl)
GUICtrlDelete ($Tab[$Zahl + 1])
_GUICtrlTab_SetCurSel($Tab, _GUICtrlTab_GetItemCount($Tab) -1)
EndIf
Irgendwie verstehe ich dich nicht. Du schreibst zuerst das du bei GUICtrlDelete ($oIE[$Zahl+1]) einen Error bekommst. Schreibst aber im Script
[autoit]Local $Zahl = _GUICtrlTab_GetCurSel ($TabControl)
If $Zahl > -1 Then
_GUICtrlTab_DeleteItem($Tab, $Zahl)
GUICtrlDelete ($inetob1[$Zahl+1])
_GUICtrlTab_SetCurSel($Tab, _GUICtrlTab_GetItemCount($Tab) -1)
EndIf
Dann schreibst du
[autoit]Dim $oIE[1]Dim $oIE[1]
$oIE[0] = _IECreateEmbedded()
Also du hast dann aber ein Objekt.
Und dann schreibst du auf einmal
[autoit]Local $Zahl = _GUICtrlTab_GetCurSel ($TabControl)
If $Zahl > -1 Then
_GUICtrlTab_DeleteItem($TabControl, $Zahl)
GUICtrlDelete ($Tab[$Zahl + 1])
_GUICtrlTab_SetCurSel($Tab, _GUICtrlTab_GetItemCount($Tab) -1)
EndIf
also entweder heißt die Variable $oIE oder $inetob1 oder $Tab. Wie heißt sie denn nun? Und wieso willst du ein Objekt mit GUICtrlDelete löschen???
halt so wie bei sirocool
bin auch grad nen bisschen verwirrt
aber wie gesagt, wegen der fehlermeldung klappt das nicht
[quote='Sirocool',index.php?page=Thread&postID=124985#post124985]so kannst du die tabs zumachen
$Tab = GUICtrlCreateTab (0, 41, @DesktopWidth -15, 25)
GUICtrlSetResizing ( -1, 802)
$mnu = GUICtrlCreateContextMenu($Tab)
$mnu_new = GUICtrlCreateMenuItem("neuer Tab",$mnu)
$mnu_del = GUICtrlCreateMenuItem("Tab schließen",$mnu)
$mnu_quell = GUICtrlCreateMenuItem("Quellcode",$mnu)
Case $mnu_new
_NewTab(GUICtrlRead ($Input1))
Case $mnu_del
_close()
Func _Close()
Local $Zahl = _GUICtrlTab_GetCurSel($Tab)
If $Zahl > -1 Then
_GUICtrlTab_DeleteItem($Tab, $Zahl)
GUICtrlDelete ($Obj[$Zahl +1])
_GUICtrlTab_SetCurSel($Tab, _GUICtrlTab_GetItemCount($Tab) -1)
EndIf
EndFunc
wenn es hilft:
Ich hatte hier mal ein Beispiel mit "eigenem" Tab-System gebaut:
#include <IE.au3>
#include <WindowsConstants.au3>
_IEErrorHandlerRegister()
[/autoit] [autoit][/autoit] [autoit]Dim $aGUIArray[1][4]
Global $iSel = 0, $hDummy = GUICreate("")
$hGUI = GUICreate("Browser Beispiel", 800, 600)
$hURL = GUICtrlCreateInput("about:blank", 200, 540, 400)
$hNTab = GUICtrlCreateButton("Tab +", 20, 540, -1, -1)
$hRTab = GUICtrlCreateButton("Tab -", 60, 540, -1, -1)
$hABack = GUICtrlCreateButton(" <- ", 140, 540, -1, -1)
$hANext = GUICtrlCreateButton(" -> ", 165, 540, -1, -1)
$aGUIArray[0][0] = GUICtrlCreateButton("about:blank", 20, 570, -1, -1, 0x8000)
$aGUIArray[0][1] = GUICreate("Child GUI", 700, 510, 50, 20, 0x80000000, $WS_EX_MDICHILD, $hGUI)
$aGUIArray[0][3] = __IECreateEmbedded($aGUIArray[0][2])
GUISetBkColor(0x000000, $hGUI)
GUISetBkColor(0xFF0000, $aGUIArray[0][1])
GUISetState(@SW_SHOWNOACTIVATE, $aGUIArray[0][1])
GUISetState(@SW_SHOW, $hGUI)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
Exit
Case $hNTab
_Browser_TabAdd($aGUIArray)
_Browser_SyncURLBar()
Case $hURL
$oIE = _Browser_ReturnActiveObj()
_IENavigate($oIE, GUICtrlRead($hURL))
_Browser_SyncURLBar()
Case $hRTab
_Browser_TabRemove()
Case $hABack
$oIE = _Browser_ReturnActiveObj()
_IEAction($oIE,"back")
Case $hANext
$oIE = _Browser_ReturnActiveObj()
_IEAction($oIE,"forward")
EndSwitch
For $i = 0 To UBound($aGUIArray) - 1
If $nMsg = $aGUIArray[$i][0] Then
If $i = $iSel Then ContinueLoop 2
_Browser_AnimateChild($iSel, 0)
_Browser_AnimateChild($i, 1)
$iSel = $i
ExitLoop
EndIf
Next
If ControlGetHandle("", "", ControlGetFocus("")) <> GUICtrlGetHandle($hURL) Then
_Browser_SyncURLBar()
EndIf
WEnd
Func __IECreateEmbedded(ByRef $_oIE)
$_oIE = _IECreateEmbedded()
$sObjCtrl = GUICtrlCreateObj($_oIE, 0, 0, 700, 510)
_IENavigate($_oIE, "about:blank")
Return $sObjCtrl
EndFunc ;==>__IECreateEmbedded
Func _Browser_TabAdd(ByRef $aArray)
_Browser_AnimateChild($iSel, 0)
$iUbound = UBound($aArray)
$hSwitch = GUISwitch($hGUI)
ReDim $aArray[$iUbound + 1][4]
$aCPos = ControlGetPos($hGUI, "", $aArray[$iUbound - 1][0])
$aArray[$iUbound][0] = GUICtrlCreateButton("Tab " & $iUbound + 1, $aCPos[0] + $aCPos[2] + 5, 570, -1, -1, 0x8000)
$aArray[$iUbound][1] = GUICreate("Child GUI", 700, 510, 50, 20, 0x80000000, $WS_EX_MDICHILD, $hGUI)
$aArray[$iUbound][3] = __IECreateEmbedded($aArray[$iUbound][2])
_Browser_AnimateChild($iUbound, 1)
$iSel = $iUbound
GUISwitch($hSwitch)
EndFunc ;==>_Browser_TabAdd
Func _Browser_TabRemove()
If UBound($aGUIArray) <= 1 Then Return
_Browser_AnimateChild($iSel, 0)
GUICtrlDelete($aGUIArray[$iSel][3])
GUIDelete($aGUIArray[$iSel][1])
GUICtrlDelete($aGUIArray[$iSel][0])
For $i = $iSel To UBound($aGUIArray) - 2
$aGUIArray[$i][0] = $aGUIArray[$i + 1][0]
$aGUIArray[$i][1] = $aGUIArray[$i + 1][1]
$aGUIArray[$i][2] = $aGUIArray[$i + 1][2]
$aGUIArray[$i][3] = $aGUIArray[$i + 1][3]
Next
ReDim $aGUIArray[UBound($aGUIArray) - 1][4]
If $iSel > 0 Then
$iSel -= 1
EndIf
ConsoleWrite($iSel & @CRLF)
_Browser_TabRepairSize()
_Browser_AnimateChild($iSel, 1)
EndFunc ;==>_Browser_TabRemove
Func _Browser_ReturnActiveObj()
Return $aGUIArray[$iSel][2]
EndFunc ;==>_Browser_ReturnActiveObj
Func _Browser_AnimateChild($iIndex, $iFlag)
Switch $iFlag
Case 0
For $i = 255 To 0 Step -10
WinSetTrans($aGUIArray[$iIndex][1], "", $i)
Next
WinSetState($aGUIArray[$iIndex][1], "", @SW_HIDE)
Case 1
WinSetTrans($aGUIArray[$iIndex][1], "", 0)
WinSetState($aGUIArray[$iIndex][1], "", @SW_SHOWNOACTIVATE)
For $i = 0 To 255 Step 10
WinSetTrans($aGUIArray[$iIndex][1], "", $i)
Next
WinActivate($hGUI)
EndSwitch
EndFunc ;==>_Browser_AnimateChild
Func _Browser_SyncURLBar()
$oIE = _Browser_ReturnActiveObj()
$sUrl = _IEPropertyGet($oIE, "locationurl")
$sName = _IEPropertyGet($oIE, "locationname")
If $sUrl <> GUICtrlRead($hURL) Or ($sName <> GUICtrlRead($aGUIArray[$iSel][0]) AND StringLeft($sName, 15) & "..." <> GUICtrlRead($aGUIArray[$iSel][0])) Then
GUICtrlSetData($hURL, $sUrl)
$sText = $sName
If StringLen($sText) > 15 Then $sText = StringLeft($sText, 15) & "..."
GUICtrlSetData($aGUIArray[$iSel][0], $sText)
_Browser_TabRepairSize()
WinSetTitle($hGUI, "", $sName)
EndIf
EndFunc ;==>_Browser_SyncURLBar
Func _Browser_TabRepairSize()
$hSwitch = GUISwitch($hDummy)
For $i = 0 To UBound($aGUIArray) - 1
$aCPos = ControlGetPos($hGUI, "", $aGUIArray[$i][0])
$hLableDummy = GUICtrlCreateButton(GUICtrlRead($aGUIArray[$i][0]), 0, 0, -1, -1)
$aCLPos = ControlGetPos($hDummy, "", $hLableDummy)
$aCPos[2] = $aCLPos[2]
ControlMove($hGUI, "", $aGUIArray[$i][0], $aCPos[0], $aCPos[1], $aCPos[2])
If $i = 0 Then ControlMove($hGUI, "", $aGUIArray[$i][0], 20, 570, $aCPos[2])
For $j = $i + 1 To UBound($aGUIArray) - 1
$aCTPos = ControlGetPos($hGUI, "", $aGUIArray[$j][0])
ControlMove($hGUI, "", $aGUIArray[$j][0], ($aCPos[0] + $aCPos[2] + 5), $aCTPos[1])
Next
Next
GUISwitch($hSwitch)
EndFunc ;==>_Browser_TabRepairSize
erstmal danke für die schnellen antworten,
aber ich glaube eine lösung mit
$selected = GuiCtrlRead ($TabControl)GuiCtrlDelete ($Tab[$selected])
[/autoit]wäre am einfachsten...
man bekommt da ja aber immer die fehlermeldung:
Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
GUICtrlDelete ($Tab[$selected])
GUICtrlDelete (^ ERROR
>Exit code: 1 Time: 13.937
kann mir jemand helfen?