Jex Posted December 22, 2007 Share Posted December 22, 2007 (edited) If you open tab 3 (autoitscript.com) and press Refresh button, script freeze.@@ Trace(62) : $msg = GUIGetMsg()>Error code: 0@@ Trace(64) : Switch $msg>Error code: 0@@ Trace(87) : _IEAction($oIE[GetTab()], "refresh")>Error code: 0@@ Trace(181) : Return _GUICtrlTab_GetCurSel($CreateTab) + 1In here script freeze, i can't understand why?expandcollapse popup#include <GUIConstants.au3> #include <GuiTab.au3> #include <IE.au3> #include <GuiStatusBar.au3> Global $Tab[10], $oIE[10], $Obj[10] Global $Title = "My Web Browser", $TabPos1 = 5, $TabPos2 = 35, $TabPos3 = 850, $TabPos4 = 650, $Status = 0, $Title2, $Status2 = "" $Form = GUICreate($Title, $TabPos3 + 10, $TabPos4 + 30) $FileMenu = GUICtrlCreateMenu("File") $FileOpenTab = GUICtrlCreateMenuItem("New Tab", $FileMenu) $EditMenu = GUICtrlCreateMenu("Edit") $StatusBar = _GUICtrlStatusBar_Create($Form) Local $aParts[1] = [500] _GUICtrlStatusBar_SetParts($StatusBar, $aParts) $Input = GUICtrlCreateInput("", 7, 7, 305, 22) $Go = GUICtrlCreateButton("Go", 320, 5, 35, 25, 0) $Back = GUICtrlCreateButton("Back", 360, 5, 43, 25, 0) $Forward = GUICtrlCreateButton("Forward", 408, 5, 59, 25, 0) $Stop = GUICtrlCreateButton("Stop", 472, 5, 43, 25, 0) $Refresh = GUICtrlCreateButton("Refresh", 520, 5, 59, 25, 0) $Home = GUICtrlCreateButton("Home", 584, 5, 43, 25, 0) $CreateTab = GUICtrlCreateTab($TabPos1, $TabPos2, $TabPos3, $TabPos4 - 50) OpenTab(1, "http://www.google.com") OpenTab(2, "http://www.yahoo.com") OpenTab(3, "http://www.autoitscript.com/forum/index.php") GUISetState() Sleep(3000) WinSetState($Form, "", @SW_HIDE) WinSetState($Form, "", @SW_SHOW) While 1 $msg = GUIGetMsg() Switch $msg Case $GUI_EVENT_CLOSE Exit Case $Go Navigate(GetTab(), GUICtrlRead($Input)) Case $Back _IEAction($oIE[GetTab()], "back") Case $Forward _IEAction($oIE[GetTab()], "forward") Case $Stop _IEAction($oIE[GetTab()], "stop") Case $Refresh _IEAction($oIE[GetTab()], "refresh") Case $Home _IEAction($oIE[GetTab()], "home") EndSwitch CheckTitle() CheckStatusBar() WEnd Func CheckTitle() $CurrentTitle = _IEPropertyGet($oIE[GetTab()], "title") If $CurrentTitle <> $Title2 Then WinSetTitle($Form, "", $CurrentTitle & " - " & $Title) $Title2 = $CurrentTitle EndIf EndFunc Func CheckStatusBar() If _IEPropertyGet($oIE[GetTab()], "busy") And $Status2 <> _IEPropertyGet($oIE[GetTab()], "locationurl") Then _GUICtrlStatusBar_SetText($StatusBar, "Opening page " & _IEPropertyGet($oIE[GetTab()], "locationurl") & "...") GUICtrlSetState($Stop, $GUI_ENABLE) $Status2 = _IEPropertyGet($oIE[GetTab()], "locationurl") ElseIf Not _IEPropertyGet($oIE[GetTab()], "busy") And $Status2 <> "" Then _GUICtrlStatusBar_SetText($StatusBar, "") GUICtrlSetState($Stop, $GUI_DISABLE) $Status2 = "" EndIf EndFunc Func OpenTab($oNum, $oLink = "") $Tab[$oNum] = GUICtrlCreateTabItem($oNum) $oIE[$oNum] = _IECreateEmbedded() $Obj[$oNum] = GUICtrlCreateObj($oIE[$oNum], $TabPos1 + 5, $TabPos2 + 25, $TabPos3 - 10, $TabPos4 - 80) If $oLink <> "" Then Navigate($oNum, $oLink) EndIf EndFunc ;==>Open Func Navigate($nNum, $nLink) _IENavigate($oIE[$nNum], $nLink, 0) $nLink = StringReplace($nLink, "http://", "") $nLink = StringReplace($nLink, "www.", "") If StringInStr($nLink, "/") Then $nLink = StringSplit($nLink, "/") $nLink = $nLink[1] EndIf If StringLen($nLink) > 25 Then $nLink = StringLeft($nLink, 25) & "..." GUICtrlSetData($Tab[$nNum], $nLink) EndFunc ;==>Navigate Func GetTab() Return _GUICtrlTab_GetCurSel($CreateTab) + 1 EndFunc Edited December 22, 2007 by Jex My scripts : Immediate Window , My Web Browser , Travian , Text Effect , Characters & Words per minute or second , Image Editor (ImageMagick) , Matrix style background effect ( Screensaver ) , Mail Sender , Protectlinks decoder and Rapidshare links checker , Fonts Fetcher , Region determine , Compare pictures , Gradient color box , Mouse Coordinates, Colors, Pixel Search things , Encrypt/Decrypt and embeding file in jpeg thing , Hard disk space monitor , Reflex game , Multiplayer Tic Tac Toe , WLM ( MSN ) personal message changer Link to comment Share on other sites More sharing options...
someone Posted December 22, 2007 Share Posted December 22, 2007 Hmm... your code seems to work fine for me. Clicked on 3rd tab, hit refresh, and no problems whatsoever. While ProcessExists('Andrews bad day.exe') BlockInput(1) SoundPlay('Music.wav') SoundSetWaveVolume('Louder') WEnd Link to comment Share on other sites More sharing options...
John117 Posted December 22, 2007 Share Posted December 22, 2007 (edited) I dont have that problem either, its just not refreshing -I would suggest a maximize option (not intended as a solution to the current problem, just another viewing problem) Edited December 22, 2007 by Hatcheda Link to comment Share on other sites More sharing options...
DW1 Posted December 22, 2007 Share Posted December 22, 2007 what version are you using? AutoIt3 Online Help Link to comment Share on other sites More sharing options...
John117 Posted December 22, 2007 Share Posted December 22, 2007 @dan ? the OP? or me Link to comment Share on other sites More sharing options...
DW1 Posted December 22, 2007 Share Posted December 22, 2007 Sorry, the OP AutoIt3 Online Help Link to comment Share on other sites More sharing options...
DW1 Posted December 22, 2007 Share Posted December 22, 2007 @Jex, I was working on building an array for the history since I don't know if there is a good way to enumerate the history backstack and forwardstack. This is just what I have at the end of my night, it is far from done, but you can press Alt-t to fire the test function to see the array that navigation is building. I first tried grabbing the history length from the object, but that was very apparent it would do quirky things. This should work fine when it is done... just gotta go spend time with the girl before she gets too mad LOL I will be back tomorrow to work on it some more. Just food for thought: expandcollapse popup#include <GUIConstants.au3> #include <GuiTab.au3> #include <IE.au3> #include <GuiStatusBar.au3> #include <array.au3> HotKeySet("!t", "test") Global $Tab[10], $oIE[10], $Obj[10] Global $Title = "My Web Browser", $TabPos1 = 5, $TabPos2 = 35, $TabPos3 = 850, $TabPos4 = 650, $Status = 0, $Title2, $Status2 = "" Global $backstack[4][1] $backstack[1][0] = 0 $backstack[2][0] = 0 $backstack[3][0] = 0 $Form = GUICreate($Title, $TabPos3 + 10, $TabPos4 + 30) $FileMenu = GUICtrlCreateMenu("File") $FileOpenTab = GUICtrlCreateMenuItem("New Tab", $FileMenu) $EditMenu = GUICtrlCreateMenu("Edit") $StatusBar = _GUICtrlStatusBar_Create($Form) Local $aParts[1] = [500] _GUICtrlStatusBar_SetParts($StatusBar, $aParts) $Input = GUICtrlCreateInput("", 7, 7, 305, 22) $Go = GUICtrlCreateButton("Go", 320, 5, 35, 25, 0) $Back = GUICtrlCreateButton("Back", 360, 5, 43, 25, 0) $Forward = GUICtrlCreateButton("Forward", 408, 5, 59, 25, 0) $Stop = GUICtrlCreateButton("Stop", 472, 5, 43, 25, 0) $Refresh = GUICtrlCreateButton("Refresh", 520, 5, 59, 25, 0) $Home = GUICtrlCreateButton("Home", 584, 5, 43, 25, 0) $CreateTab = GUICtrlCreateTab($TabPos1, $TabPos2, $TabPos3, $TabPos4 - 50) GUICtrlSetState($Back, $GUI_DISABLE) OpenTab(1, "http://www.google.com") OpenTab(2, "http://www.yahoo.com") OpenTab(3, "http://www.autoitscript.com/forum/index.php") GUISetState() Sleep(3000) WinSetState($Form, "", @SW_HIDE) WinSetState($Form, "", @SW_SHOW) $backstack[1][1] = "http://www.google.com" $backstack[2][1] = "http://www.yahoo.com" $backstack[3][1] = "http://www.autoitscript.com/forum/index.php" While 1 $msg = GUIGetMsg() Switch $msg Case $GUI_EVENT_CLOSE Exit Case $Go Navigate(GetTab(), GUICtrlRead($Input)) Case $Back _IEAction($oIE[GetTab()], "back") Case $Forward _IEAction($oIE[GetTab()], "forward") Case $Stop _IEAction($oIE[GetTab()], "stop") Case $Refresh _IEAction($oIE[GetTab()], "refresh") Case $Home _IEAction($oIE[GetTab()], "home") EndSwitch CheckTitle() CheckStatusBar() WEnd Func CheckTitle() $CurrentTitle = _IEPropertyGet($oIE[GetTab()], "title") If $CurrentTitle <> $Title2 Then WinSetTitle($Form, "", $CurrentTitle & " - " & $Title) $Title2 = $CurrentTitle EndIf EndFunc ;==>CheckTitle Func CheckStatusBar() If _IEPropertyGet($oIE[GetTab()], "busy") And $Status2 <> _IEPropertyGet($oIE[GetTab()], "locationurl") Then _GUICtrlStatusBar_SetText($StatusBar, "Opening page " & _IEPropertyGet($oIE[GetTab()], "locationurl") & "...") GUICtrlSetState($Stop, $GUI_ENABLE) $Status2 = _IEPropertyGet($oIE[GetTab()], "locationurl") ElseIf Not _IEPropertyGet($oIE[GetTab()], "busy") And $Status2 <> "" Then _GUICtrlStatusBar_SetText($StatusBar, "") GUICtrlSetState($Stop, $GUI_DISABLE) $Status2 = "" EndIf EndFunc ;==>CheckStatusBar Func OpenTab($oNum, $oLink = "") $Tab[$oNum] = GUICtrlCreateTabItem($oNum) $oIE[$oNum] = _IECreateEmbedded() $Obj[$oNum] = GUICtrlCreateObj($oIE[$oNum], $TabPos1 + 5, $TabPos2 + 25, $TabPos3 - 10, $TabPos4 - 80) If $oLink <> "" Then Navigate($oNum, $oLink) EndIf EndFunc ;==>OpenTab Func Navigate($nNum, $nLink) _IENavigate($oIE[$nNum], $nLink, 0) $nLink = StringReplace($nLink, "http://", "") $nLink = StringReplace($nLink, "www.", "") If StringInStr($nLink, "/") Then $nLink = StringSplit($nLink, "/") $nLink = $nLink[1] EndIf If StringLen($nLink) > 25 Then $nLink = StringLeft($nLink, 25) & "..." GUICtrlSetData($Tab[$nNum], $nLink) testhistory( $nNum ) EndFunc ;==>Navigate Func GetTab() Return _GUICtrlTab_GetCurSel($CreateTab) + 1 EndFunc ;==>GetTab Func testhistory( $nNum ) $backstack[$nNum][0] += 1 ;~ $oldurl = _IEPropertyGet( $oIE[$nNum], "locationurl" ) $oldurl = GUICtrlRead($Input) If $backstack[$nNum][0] + 1 > UBound( $backstack, 2 ) Then ReDim $backstack[4][$backstack[$nNum][0] + 1] $backstack[$nNum][$backstack[$nNum][0]] = $oldurl EndFunc ;==>testhistory Func test() _ArrayDisplay( $backstack ) EndFunc AutoIt3 Online Help Link to comment Share on other sites More sharing options...
Jex Posted December 22, 2007 Author Share Posted December 22, 2007 (edited) Hmm... your code seems to work fine for me. Clicked on 3rd tab, hit refresh, and no problems whatsoever.After press refresh, page refreshing but script stop after refresh. I can't understand why... I think bug. danwilli Posted Today, 05:14 AM what version are you using?I have IE6 on XP SP2, AutoIt 3.2.0.10 @Jex, I was working on building an array for the history since I don't know if there is a good way to enumerate the history backstack and forwardstack. This is just what I have at the end of my night, it is far from done, but you can press Alt-t to fire the test function to see the array that navigation is building. I first tried grabbing the history length from the object, but that was very apparent it would do quirky things. This should work fine when it is done... just gotta go spend time with the girl before she gets too mad LOL I will be back tomorrow to work on it some more.Nice work but that method can't work good i think. Because your function only grab link if navigate function called. I mean if you press link in page your function not grab that link But nice idea that function will be very usefull for ie scripts because without history, back and forward buttons crash script. By the way refresh button some times freeze script. Especially in tab3 And i can't find solution because i think that bug..? Nothing wrong in my script for refresh. Edit : Ah now i'm understand you created that history thing for adress bar drop down menu. Not for forward, back... I'm added buttons for dropdown menus. expandcollapse popup#include <GUIConstants.au3> #include <GuiTab.au3> #include <IE.au3> #include <GuiStatusBar.au3> #include <array.au3> HotKeySet("!t", "test") Global $Tab[10], $oIE[10], $Obj[10], $backstack[4][1] Global $Title = "My Web Browser", $TabPos1 = 5, $TabPos2 = 35, $TabPos3 = 850, $TabPos4 = 650, $Status = 0, $Title2, $Status2 = "", $First = 1 $backstack[1][0] = 0 $backstack[2][0] = 0 $backstack[3][0] = 0 $Form = GUICreate($Title, $TabPos3 + 10, $TabPos4 + 30) $FileMenu = GUICtrlCreateMenu("File") $FileOpenTab = GUICtrlCreateMenuItem("New Tab", $FileMenu) $EditMenu = GUICtrlCreateMenu("Edit") $StatusBar = _GUICtrlStatusBar_Create($Form) Local $aParts[1] = [500] _GUICtrlStatusBar_SetParts($StatusBar, $aParts) $Input = GUICtrlCreateInput("", 7, 7, 305, 22) $Go = GUICtrlCreateButton("Go", 336, 5, 35, 25, 0) $Back = GUICtrlCreateButton("Back", 376, 5, 43, 25, 0) $Forward = GUICtrlCreateButton("Forward", 440, 5, 59, 25, 0) $Stop = GUICtrlCreateButton("Stop", 520, 5, 43, 25, 0) $Refresh = GUICtrlCreateButton("Refresh", 568, 5, 59, 25, 0) $Home = GUICtrlCreateButton("Home", 632, 5, 43, 25, 0) $Back2 = GUICtrlCreateButton("v", 418, 5, 17, 25) $Forward2 = GUICtrlCreateButton("v", 498, 5, 17, 25) $Go2 = GUICtrlCreateButton("v", 320, 5, 17, 25, 0) $CloseTab = GUICtrlCreateButton("X", 832, 36, 19, 17, 0) $CreateTab = GUICtrlCreateTab($TabPos1, $TabPos2, $TabPos3, $TabPos4 - 50) OpenTab(1, "http://www.google.com") OpenTab(2, "http://www.yahoo.com") OpenTab(3, "http://www.autoitscript.com/forum/index.php") GUISetState() Sleep(3000) WinSetState($Form, "", @SW_HIDE) WinSetState($Form, "", @SW_SHOW) $backstack[1][1] = "http://www.google.com" $backstack[2][1] = "http://www.yahoo.com" $backstack[3][1] = "http://www.autoitscript.com/forum/index.php" While 1 $msg = GUIGetMsg() Switch $msg Case $GUI_EVENT_CLOSE Exit Case $Go Navigate(GetTab(), GUICtrlRead($Input)) Case $Back _IEAction($oIE[GetTab()], "back") Case $Forward _IEAction($oIE[GetTab()], "forward") Case $Stop _IEAction($oIE[GetTab()], "stop") Case $Refresh _IEAction($oIE[GetTab()], "refresh") Case $Home _IEAction($oIE[GetTab()], "home") EndSwitch If $First = 1 Then ;Return $o_object.document.title ;Return $o_object.document^ ERROR Sleep(1000) $First = 0 EndIf CheckTitle() CheckStatusBar() WEnd Func CheckTitle() $CurrentTitle = _IEPropertyGet($oIE[GetTab()], "title") If $CurrentTitle <> $Title2 Then WinSetTitle($Form, "", $CurrentTitle & " - " & $Title) $Title2 = $CurrentTitle EndIf EndFunc ;==>CheckTitle Func CheckStatusBar() If _IEPropertyGet($oIE[GetTab()], "busy") And $Status2 <> _IEPropertyGet($oIE[GetTab()], "locationurl") Then _GUICtrlStatusBar_SetText($StatusBar, "Opening page " & _IEPropertyGet($oIE[GetTab()], "locationurl") & "...") GUICtrlSetState($Stop, $GUI_ENABLE) $Status2 = _IEPropertyGet($oIE[GetTab()], "locationurl") ElseIf Not _IEPropertyGet($oIE[GetTab()], "busy") And $Status2 <> "" Then _GUICtrlStatusBar_SetText($StatusBar, "") GUICtrlSetState($Stop, $GUI_DISABLE) $Status2 = "" EndIf EndFunc ;==>CheckStatusBar Func OpenTab($oNum, $oLink = "") $Tab[$oNum] = GUICtrlCreateTabItem($oNum) $oIE[$oNum] = _IECreateEmbedded() $Obj[$oNum] = GUICtrlCreateObj($oIE[$oNum], $TabPos1 + 5, $TabPos2 + 25, $TabPos3 - 10, $TabPos4 - 80) If $oLink <> "" Then Navigate($oNum, $oLink) EndIf EndFunc ;==>OpenTab Func Navigate($nNum, $nLink) _IENavigate($oIE[$nNum], $nLink, 0) $nLink = StringReplace($nLink, "http://", "") $nLink = StringReplace($nLink, "www.", "") If StringInStr($nLink, "/") Then $nLink = StringSplit($nLink, "/") $nLink = $nLink[1] EndIf If StringLen($nLink) > 25 Then $nLink = StringLeft($nLink, 25) & "..." GUICtrlSetData($Tab[$nNum], $nLink) testhistory($nNum) EndFunc ;==>Navigate Func GetTab() Return _GUICtrlTab_GetCurSel($CreateTab) + 1 EndFunc ;==>GetTab Func testhistory($nNum) $backstack[$nNum][0] += 1 ;~ $oldurl = _IEPropertyGet( $oIE[$nNum], "locationurl" ) $oldurl = GUICtrlRead($Input) If $backstack[$nNum][0] + 1 > UBound($backstack, 2) Then ReDim $backstack[4][$backstack[$nNum][0] + 1] $backstack[$nNum][$backstack[$nNum][0]] = $oldurl EndFunc ;==>testhistory Func test() _ArrayDisplay($backstack) EndFunc ;==>test Edited December 22, 2007 by Jex My scripts : Immediate Window , My Web Browser , Travian , Text Effect , Characters & Words per minute or second , Image Editor (ImageMagick) , Matrix style background effect ( Screensaver ) , Mail Sender , Protectlinks decoder and Rapidshare links checker , Fonts Fetcher , Region determine , Compare pictures , Gradient color box , Mouse Coordinates, Colors, Pixel Search things , Encrypt/Decrypt and embeding file in jpeg thing , Hard disk space monitor , Reflex game , Multiplayer Tic Tac Toe , WLM ( MSN ) personal message changer Link to comment Share on other sites More sharing options...
DW1 Posted December 23, 2007 Share Posted December 23, 2007 I see what you mean there Jex, I will use a different method for building the array. I think I will use the "locationurl" property, and each time it changes, add it to the array. Also... with your errors, I cannot help but notice that you have nothing handling your IE errors. I just use the built in ones. Put this line in after your includes, and let me know if it solved the problem: _IEErrorHandlerRegister() AutoIt3 Online Help Link to comment Share on other sites More sharing options...
DW1 Posted December 24, 2007 Share Posted December 24, 2007 (edited) Jex, I have updated the history stack I was working on. All the history seems to function great now, let me know what you think. Also, I am trying to find out what is with the blank page displays in IE. Having the whole GUI hide and show is a really poor workaround. EDIT: I found a better work around suggested by Dale ( code updated ) expandcollapse popup#include <GUIConstants.au3> #include <GuiTab.au3> #include <IE.au3> #include <GuiStatusBar.au3> #include <array.au3> HotKeySet("!t", "test") Global $Tab[10], $oIE[10], $Obj[10], $flasher[10] Global $Title = "My Web Browser", $TabPos1 = 5, $TabPos2 = 35, $TabPos3 = 850, $TabPos4 = 650, $Status = 0, $Title2, $Status2 = "", $frskip = 0 Global $backstack[4][2] $backstack[1][0] = 1 $backstack[2][0] = 1 $backstack[3][0] = 1 _IEErrorHandlerRegister() $Form = GUICreate($Title, $TabPos3 + 10, $TabPos4 + 30) $FileMenu = GUICtrlCreateMenu("File") $FileOpenTab = GUICtrlCreateMenuItem("New Tab", $FileMenu) $EditMenu = GUICtrlCreateMenu("Edit") $StatusBar = _GUICtrlStatusBar_Create($Form) Local $aParts[1] = [500] _GUICtrlStatusBar_SetParts($StatusBar, $aParts) $Input = GUICtrlCreateInput("", 7, 7, 305, 22) $Go = GUICtrlCreateButton("Go", 320, 5, 35, 25, 0) $Back = GUICtrlCreateButton("Back", 360, 5, 43, 25, 0) $Forward = GUICtrlCreateButton("Forward", 408, 5, 59, 25, 0) $Stop = GUICtrlCreateButton("Stop", 472, 5, 43, 25, 0) $Refresh = GUICtrlCreateButton("Refresh", 520, 5, 59, 25, 0) $Home = GUICtrlCreateButton("Home", 584, 5, 43, 25, 0) $CreateTab = GUICtrlCreateTab($TabPos1, $TabPos2, $TabPos3, $TabPos4 - 50) GUICtrlSetState($Back, $GUI_DISABLE) GUICtrlSetState($Forward, $GUI_DISABLE) OpenTab(1, "http://www.google.com/") OpenTab(2, "http://www.yahoo.com/") OpenTab(3, "http://www.autoitscript.com/forum/index.php") GUISetState() $backstack[1][1] = "http://www.google.com/" $backstack[2][1] = "http://www.yahoo.com/" $backstack[3][1] = "http://www.autoitscript.com/forum/index.php" While 1 $msg = GUIGetMsg() Switch $msg Case $GUI_EVENT_CLOSE Exit Case $Go Navigate(GetTab(), GUICtrlRead($Input)) Case $Back historyback(GetTab()) Case $Forward historyforward(GetTab()) Case $Stop _IEAction($oIE[GetTab()], "stop") Case $Refresh _IEAction($oIE[GetTab()], "refresh") Case $Home _IEAction($oIE[GetTab()], "home") EndSwitch testhistory(GetTab()) CheckTitle() CheckStatusBar() Sleep(10) WEnd Func CheckTitle() $CurrentTitle = _IEPropertyGet($oIE[GetTab()], "title") If $CurrentTitle <> $Title2 Then WinSetTitle($Form, "", $CurrentTitle & " - " & $Title) $Title2 = $CurrentTitle EndIf EndFunc ;==>CheckTitle Func CheckStatusBar() If _IEPropertyGet($oIE[GetTab()], "busy") And $Status2 <> _IEPropertyGet($oIE[GetTab()], "locationurl") Then _GUICtrlStatusBar_SetText($StatusBar, "Opening page " & _IEPropertyGet($oIE[GetTab()], "locationurl") & "...") GUICtrlSetState($Stop, $GUI_ENABLE) $Status2 = _IEPropertyGet($oIE[GetTab()], "locationurl") ElseIf Not _IEPropertyGet($oIE[GetTab()], "busy") And $Status2 <> "" Then _GUICtrlStatusBar_SetText($StatusBar, " ") GUICtrlSetState($Stop, $GUI_DISABLE) $Status2 = "" EndIf EndFunc ;==>CheckStatusBar Func OpenTab($oNum, $oLink = "") $Tab[$oNum] = GUICtrlCreateTabItem($oNum) $oIE[$oNum] = _IECreateEmbedded() $Obj[$oNum] = GUICtrlCreateObj($oIE[$oNum], $TabPos1 + 5, $TabPos2 + 25, $TabPos3 - 10, $TabPos4 - 80) $flasher[$oNum] = GUICtrlCreateEdit("", $TabPos1 + 5, $TabPos2 + 25, $TabPos3 - 10, $TabPos4 - 80) GUICtrlSetState($flasher[$oNum], $GUI_HIDE) If $oLink <> "" Then Navigate($oNum, $oLink) EndIf EndFunc ;==>OpenTab Func Navigate($nNum, $nLink) _IENavigate($oIE[$nNum], $nLink, 0) $nLink = StringReplace($nLink, "http://", "") $nLink = StringReplace($nLink, "www.", "") If StringInStr($nLink, "/") Then $nLink = StringSplit($nLink, "/") $nLink = $nLink[1] EndIf If StringLen($nLink) > 25 Then $nLink = StringLeft($nLink, 25) & "..." GUICtrlSetData($Tab[$nNum], $nLink) EndFunc ;==>Navigate Func GetTab() Return _GUICtrlTab_GetCurSel($CreateTab) + 1 EndFunc ;==>GetTab Func testhistory($nNum) If $backstack[$nNum][$backstack[$nNum][0]] <> _IEPropertyGet($oIE[$nNum], "locationurl") And "" <> _IEPropertyGet($oIE[$nNum], "locationurl") Then $backstack[$nNum][0] += 1 $newurl = _IEPropertyGet($oIE[$nNum], "locationurl") If $backstack[$nNum][0] + 1 > UBound($backstack, 2) Then ReDim $backstack[4][$backstack[$nNum][0] + 1] If $backstack[$nNum][$backstack[$nNum][0]] <> "" Then For $avar = $backstack[$nNum][0] To UBound($backstack, 2) - 1 $backstack[$nNum][$avar] = "" Next EndIf $backstack[$nNum][$backstack[$nNum][0]] = $newurl If $frskip = 0 Then flashrefresh($nNum) Else $frskip = 0 EndIf EndIf If $backstack[$nNum][0] > 1 And GUICtrlGetState($Back) <> 80 Then GUICtrlSetState($Back, $GUI_ENABLE) If $backstack[$nNum][0] = 1 And GUICtrlGetState($Back) <> 144 Then GUICtrlSetState($Back, $GUI_DISABLE) If UBound($backstack, 2) - 1 > $backstack[$nNum][0] Then If $backstack[$nNum][$backstack[$nNum][0] + 1] = "" Then If GUICtrlGetState($Forward) <> 144 Then GUICtrlSetState($Forward, $GUI_DISABLE) Else If GUICtrlGetState($Forward) <> 80 Then GUICtrlSetState($Forward, $GUI_ENABLE) EndIf Else If GUICtrlGetState($Forward) <> 144 Then GUICtrlSetState($Forward, $GUI_DISABLE) EndIf EndFunc ;==>testhistory Func historyback($nNum) GUICtrlSetState($Back, $GUI_DISABLE) $backstack[$nNum][0] -= 1 Navigate($nNum, $backstack[$nNum][$backstack[$nNum][0]]) While _IEPropertyGet($oIE[$nNum], "locationurl") <> $backstack[$nNum][$backstack[$nNum][0]] Sleep(10) WEnd $frskip = 1 testhistory($nNum) flashrefresh($nNum) EndFunc ;==>historyback Func historyforward($nNum) GUICtrlSetState($Forward, $GUI_DISABLE) $backstack[$nNum][0] += 1 Navigate($nNum, $backstack[$nNum][$backstack[$nNum][0]]) While _IEPropertyGet($oIE[$nNum], "locationurl") <> $backstack[$nNum][$backstack[$nNum][0]] Sleep(10) WEnd $frskip = 1 testhistory($nNum) flashrefresh($nNum) EndFunc ;==>historyforward Func test() _ArrayDisplay($backstack) EndFunc ;==>test Func flashrefresh($nNum) GUICtrlSetState($flasher[$nNum], $GUI_SHOW) GUICtrlSetState($flasher[$nNum], $GUI_HIDE) EndFunc ;==>flashrefresh Edited December 25, 2007 by danwilli AutoIt3 Online Help Link to comment Share on other sites More sharing options...
Jex Posted December 25, 2007 Author Share Posted December 25, 2007 I see what you mean there Jex, I will use a different method for building the array. I think I will use the "locationurl" property, and each time it changes, add it to the array. Also... with your errors, I cannot help but notice that you have nothing handling your IE errors. I just use the built in ones. Put this line in after your includes, and let me know if it solved the problem: expandcollapse popup_IEErrorHandlerRegister()oÝ÷ Ûú®¢×¢Û(÷¦ºéyÆ®±é趯yê뢺®¢×{!j÷®¥ÖyÛaz¬¶ò²Ö³ +)à¢p%Ø^+-¢¼¬y鬶îËb¢x+y«g£ ^¶g¤0«r¢ëayÊjkkÊ)à¶âÚ.·Z¶+0Ømæåjy)jÊek+"jø§Ø^Â%xe'^jwl"±ªÞjYr¦+Âäjº.Ñ!2¢éÝi·µê𢹮§vË ë-yÖò ©^r^ºZµçªê-xß»-µ¦ÁiɺÛhéÚnWºØZ½éím§$¥¨û^®ËZ®Û®*mjwb~)©ë,+â«®ÚÛ®*m~·Íànµìzm«p¢¹"Þ¯((¡Ó^Á¹ZJZçb²ZÉø±ëa¡ÚÚérv+)¬©ä¥¨nëp¢¹"(¡Ò7ög×Ê«±Êâ¦ÙèÁ©ÝöÚrF§uú+ÁªÝnëm¢{©àzËZµëazvÚrM×诫wfî¶Ú'±ÈZ¢¡Ê¯x-«^®º+²)쵪í±Êâ¦Ö®¶sbÒÒb3c#²4ôÒW'&÷"Væ6÷VçFW&VBâVæWræS0¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷%67&FÆæRÒ3#S¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷$çVÖ&W$WÒ¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷$çVÖ&W"Òc¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷%väFW67&FöâÒf&&ÆR×W7B&RöbGRb33´ö&¦V7Bb33²à¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷$FW67&FöâÒ¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷%6÷W&6RÒ¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷$VÇfÆRÒ¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷$VÇ6öçFWBÒ¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷$Æ7DFÆÄW'&÷"Ò ¢ÒÒb3c#²4ôÒW'&÷"Væ6÷VçFW&VBâVæWræS0¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷%67&FÆæRÒ3#S¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷$çVÖ&W$WÒ¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷$çVÖ&W"Òc¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷%väFW67&FöâÒf&&ÆR×W7B&RöbGRb33´ö&¦V7Bb33²à¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷$FW67&FöâÒ¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷%6÷W&6RÒ¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷$VÇfÆRÒ¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷$VÇ6öçFWBÒ¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷$Æ7DFÆÄW'&÷"Ò ¢ÒÒb3c#²4ôÒW'&÷"Væ6÷VçFW&VBâVæWræS0¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷%67&FÆæRÒ3#S¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷$çVÖ&W$WÒ¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷$çVÖ&W"Òc¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷%väFW67&FöâÒf&&ÆR×W7B&RöbGRb33´ö&¦V7Bb33²à¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷$FW67&FöâÒ¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷%6÷W&6RÒ¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷$VÇfÆRÒ¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷$VÇ6öçFWBÒ¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷$Æ7DFÆÄW'&÷"Ò ¢ÒÒb3c#²4ôÒW'&÷"Væ6÷VçFW&VBâVæWræS0¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷%67&FÆæRÒ3#S¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷$çVÖ&W$WÒ¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷$çVÖ&W"Òc¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷%väFW67&FöâÒf&&ÆR×W7B&RöbGRb33´ö&¦V7Bb33²à¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷$FW67&FöâÒ¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷%6÷W&6RÒ¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷$VÇfÆRÒ¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷$VÇ6öçFWBÒ¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷$Æ7DFÆÄW'&÷"Ò ¢ÒÒb3c#²4ôÒW'&÷"Væ6÷VçFW&VBâVæWræS0¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷%67&FÆæRÒ3#S¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷$çVÖ&W$WÒ¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷$çVÖ&W"Òc¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷%väFW67&FöâÒf&&ÆR×W7B&RöbGRb33´ö&¦V7Bb33²à¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷$FW67&FöâÒ¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷%6÷W&6RÒ¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷$VÇfÆRÒ¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷$VÇ6öçFWBÒ¢ÒÒÒÒb3c#²b33c´T6öÔW'&÷$Æ7DFÆÄW'&÷"ÒoÝ÷ ØìË*.n±çfÊV¬¶,µçlr¸©µ8Z¶Ç+bÉnuë(éÞ¢nëm¢{ºÛhÉè· +«¢+Ø¥¹±Õ±ÐíU% ½¹ÍѹÑ̹ÔÌÐì(¥¹±Õ±ÐíÕ¥Q¹ÔÌÐì(¥¹±Õ±Ðí%¹ÔÌÐì(¥¹±Õ±ÐíÕ¥MÑÑÕÍ È¹ÔÌÐì(¥¹±Õ±ÐíÉÉä¹ÔÌÐì)!½Ñ-åMÐ ÅÕ½ÐìÌÌíÐÅÕ½Ðì°ÅÕ½ÐíÑÍÐÅÕ½Ðì¤)±½°ÀÌØíQlÄÁt°ÀÌØí½%lÄÁt°ÀÌØí=©lÄÁt°ÀÌØí±Í¡ÉlÄÁt)±½°ÀÌØíQ¥Ñ±ôÅÕ½Ðí5ä] ɽÝÍÈÅÕ½Ðì°ÀÌØíQA½ÌÄôÔ°ÀÌØíQA½ÌÈôÌÔ°ÀÌØíQA½ÌÌôàÔÀ°ÀÌØíQA½ÌÐôØÔÀ°ÀÌØíMÑÑÕÌôÀ°ÀÌØíQ¥Ñ±È°ÀÌØíMÑÑÕÌÈôÅÕ½ÐìÅÕ½Ðì°ÀÌØíÉÍ¥ÀôÀ)±½°ÀÌØíÍÑlÑulÉt(ÀÌØíÍÑlÅulÁtôÄ(ÀÌØíÍÑlÉulÁtôÄ(ÀÌØíÍÑlÍulÁtôÄ)}%ÉɽÉ!¹±ÉI¥ÍÑÈ ¤(ÀÌØí½É´ôU% ÉÑ ÀÌØíQ¥Ñ±°ÀÌØíQA½Ì̬ÄÀ°ÀÌØíQA½ÌЬÌÀ¤(ÀÌØí¥±5¹ÔôU% Ñɱ ÉÑ5¹Ô ÅÕ½Ðí¥±ÅÕ½Ðì¤(ÀÌØí¥±=Á¹QôU% Ñɱ ÉÑ5¹Õ%Ñ´ ÅÕ½Ðí9ÜQÅÕ½Ðì°ÀÌØí¥±5¹Ô¤(ÀÌØí¥Ñ5¹ÔôU% Ñɱ ÉÑ5¹Ô ÅÕ½Ðí¥ÐÅÕ½Ðì¤(ÀÌØíMÑÑÕÍ Èô}U% ÑɱMÑÑÕÍ É} ÉÑ ÀÌØí½É´¤)1½°ÀÌØíAÉÑÍlÅtôlÔÀÁt)}U% ÑɱMÑÑÕÍ É}MÑAÉÑÌ ÀÌØíMÑÑÕÍ È°ÀÌØíAÉÑ̤(ÀÌØí%¹ÁÕÐôU% Ñɱ ÉÑ%¹ÁÕÐ ÅÕ½ÐìÅÕ½Ðì°Ü°Ü°ÌÀÔ°ÈȤ(ÀÌØí¼ôU% Ñɱ ÉÑ ÕÑѽ¸ ÅÕ½Ðí¼ÅÕ½Ðì°ÌÌØ°Ô°ÌÔ°ÈÔ°À¤(ÀÌØí ¬ôU% Ñɱ ÉÑ ÕÑѽ¸ ÅÕ½Ðí ¬ÅÕ½Ðì°ÌÜØ°Ô°ÐÌ°ÈÔ°À¤(ÀÌØí½ÉÝÉôU% Ñɱ ÉÑ ÕÑѽ¸ ÅÕ½Ðí½ÉÝÉÅÕ½Ðì°ÐÐÀ°Ô°Ôä°ÈÔ°À¤(ÀÌØíMѽÀôU% Ñɱ ÉÑ ÕÑѽ¸ ÅÕ½ÐíMѽÀÅÕ½Ðì°ÔÈÀ°Ô°ÐÌ°ÈÔ°À¤(ÀÌØíIÉÍ ôU% Ñɱ ÉÑ ÕÑѽ¸ ÅÕ½ÐíIÉÍ ÅÕ½Ðì°ÔØà°Ô°Ôä°ÈÔ°À¤(ÀÌØí!½µôU% Ñɱ ÉÑ ÕÑѽ¸ ÅÕ½Ðí!½µÅÕ½Ðì°ØÌÈ°Ô°ÐÌ°ÈÔ°À¤(ÀÌØí ¬ÈôU% Ñɱ ÉÑ ÕÑѽ¸ ÅÕ½ÐíØÅÕ½Ðì°ÐÄà°Ô°ÄÜ°ÈÔ¤(ÀÌØí½ÉÝÉÈôU% Ñɱ ÉÑ ÕÑѽ¸ ÅÕ½ÐíØÅÕ½Ðì°Ðäà°Ô°ÄÜ°ÈÔ¤(ÀÌØí¼ÈôU% Ñɱ ÉÑ ÕÑѽ¸ ÅÕ½ÐíØÅÕ½Ðì°ÌÈÀ°Ô°ÄÜ°ÈÔ°À¤(ÀÌØí ±½ÍQôU% Ñɱ ÉÑ ÕÑѽ¸ ÅÕ½Ðí`ÅÕ½Ðì°àÌÈ°ÌØ°Ää°ÄÜ°À¤(ÀÌØí ÉÑQôU% Ñɱ ÉÑQ ÀÌØíQA½ÌÄ°ÀÌØíQA½ÌÈ°ÀÌØíQA½ÌÌ°ÀÌØíQA½ÌдÔÀ¤)U% ÑɱMÑMÑÑ ÀÌØí ¬°ÀÌØíU%}%M 1¤)U% ÑɱMÑMÑÑ ÀÌØí½ÉÝÉ°ÀÌØíU%}%M 1¤)U% ÑɱMÑMÑÑ ÀÌØí ¬È°ÀÌØíU%}%M 1¤)U% ÑɱMÑMÑÑ ÀÌØí½ÉÝÉÈ°ÀÌØíU%}%M 1¤)=Á¹Q Ä°ÅÕ½Ðí¡ÑÑÀè¼½ÝÝܹ½½±¹½´¼ÅÕ½Ðì¤)=Á¹Q È°ÅÕ½Ðí¡ÑÑÀè¼½ÝÝܹ塽¼¹½´¼ÅÕ½Ðì¤)=Á¹Q Ì°ÅÕ½Ðí¡ÑÑÀè¼½ÝÝܹÕѽ¥ÑÍÉ¥Áй½´½½ÉÕ´½¥¹à¹Á¡ÀÅÕ½Ðì¤)U%MÑMÑÑ ¤(ÀÌØíÍÑlÅulÅtôÅÕ½Ðí¡ÑÑÀè¼½ÝÝܹ½½±¹½´¼ÅÕ½Ðì(ÀÌØíÍÑlÉulÅtôÅÕ½Ðí¡ÑÑÀè¼½ÝÝܹ塽¼¹½´¼ÅÕ½Ðì(ÀÌØíÍÑlÍulÅtôÅÕ½Ðí¡ÑÑÀè¼½ÝÝܹÕѽ¥ÑÍÉ¥Áй½´½½ÉÕ´½¥¹à¹Á¡ÀÅÕ½Ðì)]¡¥±Ä($ÀÌØíµÍôU%Ñ5Í ¤(%MÝ¥Ñ ÀÌØíµÍ($% ÍÀÌØíU%}Y9Q} 1=M($$%á¥Ð($% ÍÀÌØí¼($$%9٥ѡÑQ ¤°U% ÑɱI ÀÌØí%¹ÁÕФ¤($% ÍÀÌØí ¬($$%¡¥ÍѽÉ嬡ÑQ ¤¤($% ÍÀÌØí½ÉÝÉ($$%¡¥ÍѽÉå½ÉÝÉ¡ÑQ ¤¤($% ÍÀÌØíMѽÀ($$%}%Ñ¥½¸ ÀÌØí½%mÑQ ¥t°ÅÕ½ÐíÍѽÀÅÕ½Ðì¤($% ÍÀÌØíIÉÍ ($$%}%Ñ¥½¸ ÀÌØí½%mÑQ ¥t°ÅÕ½ÐíÉÉÍ ÅÕ½Ðì¤($% ÍÀÌØí!½µ($$%}%Ñ¥½¸ ÀÌØí½%mÑQ ¥t°ÅÕ½Ðí¡½µÅÕ½Ðì¤(%¹MÝ¥Ñ (%ÑÍÑ¡¥ÍѽÉä¡ÑQ ¤¤(% ¡Q¥Ñ± ¤(% ¡MÑÑÕÍ È ¤(%M±À ÄÀ¤)]¹)Õ¹ ¡Q¥Ñ± ¤($ÀÌØí ÕÉɹÑQ¥Ñ±ô}%AɽÁÉÑåÐ ÀÌØí½%mÑQ ¥t°ÅÕ½ÐíѥѱÅÕ½Ðì¤(%%ÀÌØí ÕÉɹÑQ¥Ñ±±ÐìÐìÀÌØíQ¥Ñ±ÈQ¡¸($%]¥¹MÑQ¥Ñ± ÀÌØí½É´°ÅÕ½ÐìÅÕ½Ðì°ÀÌØí ÕÉɹÑQ¥Ñ±µÀìÅÕ½Ðì´ÅÕ½ÐìµÀìÀÌØíQ¥Ñ±¤($$ÀÌØíQ¥Ñ±ÈôÀÌØí ÕÉɹÑQ¥Ñ±(%¹%)¹Õ¹ìôôÐí ¡Q¥Ñ±)Õ¹ ¡MÑÑÕÍ È ¤(%%}%AɽÁÉÑåÐ ÀÌØí½%mÑQ ¥t°ÅÕ½ÐíÕÍäÅÕ½Ð줹ÀÌØíMÑÑÕÌȱÐìÐì}%AɽÁÉÑåÐ ÀÌØí½%mÑQ ¥t°ÅÕ½Ðí±½Ñ¥½¹ÕÉ°ÅÕ½Ðì¤Q¡¸($%}U% ÑɱMÑÑÕÍ É}MÑQáÐ ÀÌØíMÑÑÕÍ È°ÅÕ½Ðí=Á¹¥¹ÁÅÕ½ÐìµÀì}%AɽÁÉÑåÐ ÀÌØí½%mÑQ ¥t°ÅÕ½Ðí±½Ñ¥½¹ÕÉ°ÅÕ½Ð줵ÀìÅÕ½Ð츸¸ÅÕ½Ðì¤($%U% ÑɱMÑMÑÑ ÀÌØíMѽÀ°ÀÌØíU%}9 1¤($$ÀÌØíMÑÑÕÌÈô}%AɽÁÉÑåÐ ÀÌØí½%mÑQ ¥t°ÅÕ½Ðí±½Ñ¥½¹ÕÉ°ÅÕ½Ðì¤(%±Í%9½Ð}%AɽÁÉÑåÐ ÀÌØí½%mÑQ ¥t°ÅÕ½ÐíÕÍäÅÕ½Ð줹ÀÌØíMÑÑÕÌȱÐìÐìÅÕ½ÐìÅÕ½ÐìQ¡¸($%}U% ÑɱMÑÑÕÍ É}MÑQáÐ ÀÌØíMÑÑÕÍ È°ÅÕ½ÐìÅÕ½Ðì¤($%U% ÑɱMÑMÑÑ ÀÌØíMѽÀ°ÀÌØíU%}%M 1¤($$ÀÌØíMÑÑÕÌÈôÅÕ½ÐìÅÕ½Ðì(%¹%)¹Õ¹ìôôÐí ¡MÑÑÕÍ È)Õ¹=Á¹Q ÀÌØí½9Õ´°ÀÌØí½1¥¹¬ôÅÕ½ÐìÅÕ½Ðì¤($ÀÌØíQlÀÌØí½9ÕµtôU% Ñɱ ÉÑQ%Ñ´ ÀÌØí½9Õ´¤($ÀÌØí½%lÀÌØí½9Õµtô}% Éѵ ¤($ÀÌØí=©lÀÌØí½9ÕµtôU% Ñɱ ÉÑ=¨ ÀÌØí½%lÀÌØí½9Õµt°ÀÌØíQA½ÌĬ԰ÀÌØíQA½ÌȬÈÔ°ÀÌØíQA½ÌÌ´ÄÀ°ÀÌØíQA½ÌдàÀ¤($ÀÌØí±Í¡ÉlÀÌØí½9ÕµtôU% Ñɱ ÉѥРÅÕ½ÐìÅÕ½Ðì°ÀÌØíQA½ÌĬ԰ÀÌØíQA½ÌȬÈÔ°ÀÌØíQA½ÌÌ´ÄÀ°ÀÌØíQA½ÌдàÀ¤(%U% ÑɱMÑMÑÑ ÀÌØí±Í¡ÉlÀÌØí½9Õµt°ÀÌØíU%}!%¤(%%ÀÌØí½1¥¹¬±ÐìÐìÅÕ½ÐìÅÕ½ÐìQ¡¸($%9Ù¥Ñ ÀÌØí½9Õ´°ÀÌØí½1¥¹¬¤(%¹%)¹Õ¹ìôôÐí=Á¹Q)Õ¹9Ù¥Ñ ÀÌØí¹9Õ´°ÀÌØí¹1¥¹¬¤(%}%9Ù¥Ñ ÀÌØí½%lÀÌØí¹9Õµt°ÀÌØí¹1¥¹¬°À¤($ÀÌØí¹1¥¹¬ôMÑÉ¥¹IÁ± ÀÌØí¹1¥¹¬°ÅÕ½Ðí¡ÑÑÀè¼¼ÅÕ½Ðì°ÅÕ½ÐìÅÕ½Ðì¤($ÀÌØí¹1¥¹¬ôMÑÉ¥¹IÁ± ÀÌØí¹1¥¹¬°ÅÕ½ÐíÝÝܸÅÕ½Ðì°ÅÕ½ÐìÅÕ½Ðì¤(%%MÑÉ¥¹%¹MÑÈ ÀÌØí¹1¥¹¬°ÅÕ½Ðì¼ÅÕ½Ðì¤Q¡¸($$ÀÌØí¹1¥¹¬ôMÑÉ¥¹MÁ±¥Ð ÀÌØí¹1¥¹¬°ÅÕ½Ðì¼ÅÕ½Ðì¤($$ÀÌØí¹1¥¹¬ôÀÌØí¹1¥¹lÅt(%¹%(%%MÑÉ¥¹1¸ ÀÌØí¹1¥¹¬¤ÐìÈÔQ¡¸ÀÌØí¹1¥¹¬ôMÑÉ¥¹1Ð ÀÌØí¹1¥¹¬°ÈÔ¤µÀìÅÕ½Ð츸¸ÅÕ½Ðì(%U% ÑɱMÑÑ ÀÌØíQlÀÌØí¹9Õµt°ÀÌØí¹1¥¹¬¤)¹Õ¹ìôôÐí9Ù¥Ñ)Õ¹ÑQ ¤(%IÑÕɸ}U% ÑɱQ}Ñ ÕÉM° ÀÌØí ÉÑQ¤¬Ä)¹Õ¹ìôôÐíÑQ)Õ¹ÑÍÑ¡¥ÍѽÉä ÀÌØí¹9Õ´¤(%%ÀÌØíÍÑlÀÌØí¹9ÕµulÀÌØíÍÑlÀÌØí¹9ÕµulÁut±ÐìÐì}%AɽÁÉÑåÐ ÀÌØí½%lÀÌØí¹9Õµt°ÅÕ½Ðí±½Ñ¥½¹ÕÉ°ÅÕ½Ð줹ÅÕ½ÐìÅÕ½Ðì±ÐìÐì}%AɽÁÉÑåÐ ÀÌØí½%lÀÌØí¹9Õµt°ÅÕ½Ðí±½Ñ¥½¹ÕÉ°ÅÕ½Ðì¤Q¡¸($$ÀÌØíÍÑlÀÌØí¹9ÕµulÁt¬ôÄ($$ÀÌØí¹ÝÕÉ°ô}%AɽÁÉÑåÐ ÀÌØí½%lÀÌØí¹9Õµt°ÅÕ½Ðí±½Ñ¥½¹ÕÉ°ÅÕ½Ðì¤($%%ÀÌØíÍÑlÀÌØí¹9ÕµulÁt¬ÄÐìU ½Õ¹ ÀÌØíÍѬ°È¤Q¡¸I¥´ÀÌØíÍÑlÑulÀÌØíÍÑlÀÌØí¹9ÕµulÁt¬Åt($%%ÀÌØíÍÑlÀÌØí¹9ÕµulÀÌØíÍÑlÀÌØí¹9ÕµulÁut±ÐìÐìÅÕ½ÐìÅÕ½ÐìQ¡¸($$%½ÈÀÌØíÙÈôÀÌØíÍÑlÀÌØí¹9ÕµulÁtQ¼U ½Õ¹ ÀÌØíÍѬ°È¤´Ä($$$$ÀÌØíÍÑlÀÌØí¹9ÕµulÀÌØíÙÉtôÅÕ½ÐìÅÕ½Ðì($$%9áÐ($%¹%($$ÀÌØíÍÑlÀÌØí¹9ÕµulÀÌØíÍÑlÀÌØí¹9ÕµulÁutôÀÌØí¹ÝÕÉ°($%%ÀÌØíÉÍ¥ÀôÀQ¡¸($$%±Í¡ÉÉÍ ÀÌØí¹9Õ´¤($%±Í($$$ÀÌØíÉÍ¥ÀôÀ($%¹%(%¹%(%%ÀÌØíÍÑlÀÌØí¹9ÕµulÁtÐìĹU% ÑɱÑMÑÑ ÀÌØí ¬¤±ÐìÐìàÀQ¡¸($%U% ÑɱMÑMÑÑ ÀÌØí ¬°ÀÌØíU%}9 1¤($%U% ÑɱMÑMÑÑ ÀÌØí ¬È°ÀÌØíU%}9 1¤(%¹%(%%ÀÌØíÍÑlÀÌØí¹9ÕµulÁtôĹU% ÑɱÑMÑÑ ÀÌØí ¬¤±ÐìÐìÄÐÐQ¡¸($%U% ÑɱMÑMÑÑ ÀÌØí ¬°ÀÌØíU%}%M 1¤($%U% ÑɱMÑMÑÑ ÀÌØí ¬È°ÀÌØíU%}%M 1¤(%¹%(%%U ½Õ¹ ÀÌØíÍѬ°È¤´ÄÐìÀÌØíÍÑlÀÌØí¹9ÕµulÁtQ¡¸($%%ÀÌØíÍÑlÀÌØí¹9ÕµulÀÌØíÍÑlÀÌØí¹9ÕµulÁt¬ÅtôÅÕ½ÐìÅÕ½ÐìQ¡¸($$%%U% ÑɱÑMÑÑ ÀÌØí½ÉÝɤ±ÐìÐìÄÐÐQ¡¸($$$%U% ÑɱMÑMÑÑ ÀÌØí½ÉÝÉ°ÀÌØíU%}%M 1¤($$$%U% ÑɱMÑMÑÑ ÀÌØí½ÉÝÉÈ°ÀÌØíU%}%M 1¤($$%¹%($%±Í($$%%U% ÑɱÑMÑÑ ÀÌØí½ÉÝɤ±ÐìÐìàÀQ¡¸($$$%U% ÑɱMÑMÑÑ ÀÌØí½ÉÝÉ°ÀÌØíU%}9 1¤($$$%U% ÑɱMÑMÑÑ ÀÌØí½ÉÝÉÈ°ÀÌØíU%}9 1¤($$%¹%($%¹%(%±Í($%%U% ÑɱÑMÑÑ ÀÌØí½ÉÝɤ±ÐìÐìÄÐÐQ¡¸($$%U% ÑɱMÑMÑÑ ÀÌØí½ÉÝÉ°ÀÌØíU%}%M 1¤($$%U% ÑɱMÑMÑÑ ÀÌØí½ÉÝÉÈ°ÀÌØíU%}%M 1¤($%¹%(%¹%)¹Õ¹ìôôÐíÑÍÑ¡¥ÍѽÉä)Õ¹¡¥ÍѽÉå¬ ÀÌØí¹9Õ´¤(%U% ÑɱMÑMÑÑ ÀÌØí ¬°ÀÌØíU%}%M 1¤(%U% ÑɱMÑMÑÑ ÀÌØí ¬È°ÀÌØíU%}%M 1¤($ÀÌØíÍÑlÀÌØí¹9ÕµulÁt´ôÄ(%9Ù¥Ñ ÀÌØí¹9Õ´°ÀÌØíÍÑlÀÌØí¹9ÕµulÀÌØíÍÑlÀÌØí¹9ÕµulÁut¤(%]¡¥±}%AɽÁÉÑåÐ ÀÌØí½%lÀÌØí¹9Õµt°ÅÕ½Ðí±½Ñ¥½¹ÕÉ°ÅÕ½Ð줱ÐìÐìÀÌØíÍÑlÀÌØí¹9ÕµulÀÌØíÍÑlÀÌØí¹9ÕµulÁut($%M±À ÄÀ¤(%]¹($ÀÌØíÉÍ¥ÀôÄ(%ÑÍÑ¡¥ÍѽÉä ÀÌØí¹9Õ´¤(%±Í¡ÉÉÍ ÀÌØí¹9Õ´¤)¹Õ¹ìôôÐí¡¥ÍѽÉå¬)Õ¹¡¥ÍѽÉå½ÉÝÉ ÀÌØí¹9Õ´¤(%U% ÑɱMÑMÑÑ ÀÌØí½ÉÝÉ°ÀÌØíU%}%M 1¤(%U% ÑɱMÑMÑÑ ÀÌØí½ÉÝÉÈ°ÀÌØíU%}%M 1¤($ÀÌØíÍÑlÀÌØí¹9ÕµulÁt¬ôÄ(%9Ù¥Ñ ÀÌØí¹9Õ´°ÀÌØíÍÑlÀÌØí¹9ÕµulÀÌØíÍÑlÀÌØí¹9ÕµulÁut¤(%]¡¥±}%AɽÁÉÑåÐ ÀÌØí½%lÀÌØí¹9Õµt°ÅÕ½Ðí±½Ñ¥½¹ÕÉ°ÅÕ½Ð줱ÐìÐìÀÌØíÍÑlÀÌØí¹9ÕµulÀÌØíÍÑlÀÌØí¹9ÕµulÁut($%M±À ÄÀ¤(%]¹($ÀÌØíÉÍ¥ÀôÄ(%ÑÍÑ¡¥ÍѽÉä ÀÌØí¹9Õ´¤(%±Í¡ÉÉÍ ÀÌØí¹9Õ´¤)¹Õ¹ìôôÐí¡¥ÍѽÉå½ÉÝÉ)Õ¹ÑÍÐ ¤(%}ÉÉå¥ÍÁ±ä ÀÌØíÍѬ¤)¹Õ¹ìôôÐíÑÍÐ)Õ¹±Í¡ÉÉÍ ÀÌØí¹9Õ´¤(%U% ÑɱMÑMÑÑ ÀÌØí±Í¡ÉlÀÌØí¹9Õµt°ÀÌØíU%}M!=¤(%U% ÑɱMÑMÑÑ ÀÌØí±Í¡ÉlÀÌØí¹9Õµt°ÀÌØíU%}!%¤)¹Õ¹ìôôÐí±Í¡ÉÉÍ My scripts : Immediate Window , My Web Browser , Travian , Text Effect , Characters & Words per minute or second , Image Editor (ImageMagick) , Matrix style background effect ( Screensaver ) , Mail Sender , Protectlinks decoder and Rapidshare links checker , Fonts Fetcher , Region determine , Compare pictures , Gradient color box , Mouse Coordinates, Colors, Pixel Search things , Encrypt/Decrypt and embeding file in jpeg thing , Hard disk space monitor , Reflex game , Multiplayer Tic Tac Toe , WLM ( MSN ) personal message changer Link to comment Share on other sites More sharing options...
Jex Posted December 25, 2007 Author Share Posted December 25, 2007 (edited) I can't edit last post. Added edit menu items and open tab now working but for open tab you need edit history function because giving error. Select all not work true because first need click that page expandcollapse popup#include <GUIConstants.au3> #include <GuiTab.au3> #include <IE.au3> #include <GuiStatusBar.au3> #include <array.au3> HotKeySet("!t", "test") Global $Tab[10], $oIE[10], $Obj[10], $flasher[10] Global $Title = "My Web Browser", $TabPos1 = 5, $TabPos2 = 35, $TabPos3 = 850, $TabPos4 = 650, $Status = 0, $Title2, $Status2 = "", $frskip = 0, $Count = 1 Global $backstack[4][2] $backstack[1][0] = 1 $backstack[2][0] = 1 $backstack[3][0] = 1 _IEErrorHandlerRegister() $Form = GUICreate($Title, $TabPos3 + 10, $TabPos4 + 30) $FileMenu = GUICtrlCreateMenu("File") $FileOpenTab = GUICtrlCreateMenuItem("New Tab", $FileMenu) $EditMenu = GUICtrlCreateMenu("Edit") $Cut = GUICtrlCreateMenuItem("Cut", $EditMenu) $Copy = GUICtrlCreateMenuItem("Copy", $EditMenu) $Paste = GUICtrlCreateMenuItem("Paste", $EditMenu) $Sep = GUICtrlCreateMenuItem("", $EditMenu) $Selectall = GUICtrlCreateMenuItem("Select All", $EditMenu) $StatusBar = _GUICtrlStatusBar_Create($Form) Local $aParts[1] = [500] _GUICtrlStatusBar_SetParts($StatusBar, $aParts) $Input = GUICtrlCreateInput("", 7, 7, 305, 22) $Go = GUICtrlCreateButton("Go", 336, 5, 35, 25, 0) $Back = GUICtrlCreateButton("Back", 376, 5, 43, 25, 0) $Forward = GUICtrlCreateButton("Forward", 440, 5, 59, 25, 0) $Stop = GUICtrlCreateButton("Stop", 520, 5, 43, 25, 0) $Refresh = GUICtrlCreateButton("Refresh", 568, 5, 59, 25, 0) $Home = GUICtrlCreateButton("Home", 632, 5, 43, 25, 0) $Back2 = GUICtrlCreateButton("v", 418, 5, 17, 25) $Forward2 = GUICtrlCreateButton("v", 498, 5, 17, 25) $Go2 = GUICtrlCreateButton("v", 320, 5, 17, 25, 0) $CloseTab = GUICtrlCreateButton("X", 832, 36, 19, 17, 0) $CreateTab = GUICtrlCreateTab($TabPos1, $TabPos2, $TabPos3, $TabPos4 - 50) GUICtrlSetState($Back, $GUI_DISABLE) GUICtrlSetState($Forward, $GUI_DISABLE) GUICtrlSetState($Back2, $GUI_DISABLE) GUICtrlSetState($Forward2, $GUI_DISABLE) OpenTab(1, "http://www.google.com/") OpenTab(2, "http://www.yahoo.com/") OpenTab(3, "http://www.autoitscript.com/forum/index.php") GUISetState() $backstack[1][1] = "http://www.google.com/" $backstack[2][1] = "http://www.yahoo.com/" $backstack[3][1] = "http://www.autoitscript.com/forum/index.php" While 1 $msg = GUIGetMsg() Switch $msg Case $GUI_EVENT_CLOSE Exit Case $Go Navigate(GetTab(), GUICtrlRead($Input)) Case $Back historyback(GetTab()) Case $Forward historyforward(GetTab()) Case $Stop _IEAction($oIE[GetTab()], "stop") Case $Refresh _IEAction($oIE[GetTab()], "refresh") Case $Home _IEAction($oIE[GetTab()], "home") Case $FileOpenTab OpenTab($Count) _IEAction($oIE[$Count - 1], "home") _GUICtrlTab_SetCurSel($CreateTab, $Count - 2) Case $Cut _IEAction($oIE[GetTab()], "cut") Case $Copy _IEAction($oIE[GetTab()], "copy") Case $Paste _IEAction($oIE[GetTab()], "paste") Case $Selectall _IEAction($oIE[GetTab()], "selectall") EndSwitch testhistory(GetTab()) CheckTitle() CheckStatusBar() Sleep(10) WEnd Func CheckTitle() $CurrentTitle = _IEPropertyGet($oIE[GetTab()], "title") If $CurrentTitle <> $Title2 Then WinSetTitle($Form, "", $CurrentTitle & " - " & $Title) $Title2 = $CurrentTitle EndIf EndFunc ;==>CheckTitle Func CheckStatusBar() If _IEPropertyGet($oIE[GetTab()], "busy") And $Status2 <> _IEPropertyGet($oIE[GetTab()], "locationurl") Then _GUICtrlStatusBar_SetText($StatusBar, "Opening page " & _IEPropertyGet($oIE[GetTab()], "locationurl") & "...") GUICtrlSetState($Stop, $GUI_ENABLE) $Status2 = _IEPropertyGet($oIE[GetTab()], "locationurl") ElseIf Not _IEPropertyGet($oIE[GetTab()], "busy") And $Status2 <> "" Then _GUICtrlStatusBar_SetText($StatusBar, " ") GUICtrlSetState($Stop, $GUI_DISABLE) $Status2 = "" EndIf EndFunc ;==>CheckStatusBar Func OpenTab($oNum, $oLink = "") If $Count > 10 Then Return @error $Tab[$oNum] = GUICtrlCreateTabItem($oNum) $oIE[$oNum] = _IECreateEmbedded() $Obj[$oNum] = GUICtrlCreateObj($oIE[$oNum], $TabPos1 + 5, $TabPos2 + 25, $TabPos3 - 10, $TabPos4 - 80) $flasher[$oNum] = GUICtrlCreateEdit("", $TabPos1 + 5, $TabPos2 + 25, $TabPos3 - 10, $TabPos4 - 80) GUICtrlSetState($flasher[$oNum], $GUI_HIDE) If $oLink <> "" Then Navigate($oNum, $oLink) EndIf $Count += 1 EndFunc ;==>OpenTab Func Navigate($nNum, $nLink) _IENavigate($oIE[$nNum], $nLink, 0) $nLink = StringReplace($nLink, "http://", "") $nLink = StringReplace($nLink, "www.", "") If StringInStr($nLink, "/") Then $nLink = StringSplit($nLink, "/") $nLink = $nLink[1] EndIf If StringLen($nLink) > 25 Then $nLink = StringLeft($nLink, 25) & "..." GUICtrlSetData($Tab[$nNum], $nLink) EndFunc ;==>Navigate Func GetTab() Return _GUICtrlTab_GetCurSel($CreateTab) + 1 EndFunc ;==>GetTab Func testhistory($nNum) If $backstack[$nNum][$backstack[$nNum][0]] <> _IEPropertyGet($oIE[$nNum], "locationurl") And "" <> _IEPropertyGet($oIE[$nNum], "locationurl") Then $backstack[$nNum][0] += 1 $newurl = _IEPropertyGet($oIE[$nNum], "locationurl") If $backstack[$nNum][0] + 1 > UBound($backstack, 2) Then ReDim $backstack[4][$backstack[$nNum][0] + 1] If $backstack[$nNum][$backstack[$nNum][0]] <> "" Then For $avar = $backstack[$nNum][0] To UBound($backstack, 2) - 1 $backstack[$nNum][$avar] = "" Next EndIf $backstack[$nNum][$backstack[$nNum][0]] = $newurl If $frskip = 0 Then flashrefresh($nNum) Else $frskip = 0 EndIf EndIf If $backstack[$nNum][0] > 1 And GUICtrlGetState($Back) <> 80 Then GUICtrlSetState($Back, $GUI_ENABLE) GUICtrlSetState($Back2, $GUI_ENABLE) EndIf If $backstack[$nNum][0] = 1 And GUICtrlGetState($Back) <> 144 Then GUICtrlSetState($Back, $GUI_DISABLE) GUICtrlSetState($Back2, $GUI_DISABLE) EndIf If UBound($backstack, 2) - 1 > $backstack[$nNum][0] Then If $backstack[$nNum][$backstack[$nNum][0] + 1] = "" Then If GUICtrlGetState($Forward) <> 144 Then GUICtrlSetState($Forward, $GUI_DISABLE) GUICtrlSetState($Forward2, $GUI_DISABLE) EndIf Else If GUICtrlGetState($Forward) <> 80 Then GUICtrlSetState($Forward, $GUI_ENABLE) GUICtrlSetState($Forward2, $GUI_ENABLE) EndIf EndIf Else If GUICtrlGetState($Forward) <> 144 Then GUICtrlSetState($Forward, $GUI_DISABLE) GUICtrlSetState($Forward2, $GUI_DISABLE) EndIf EndIf EndFunc ;==>testhistory Func historyback($nNum) GUICtrlSetState($Back, $GUI_DISABLE) GUICtrlSetState($Back2, $GUI_DISABLE) $backstack[$nNum][0] -= 1 Navigate($nNum, $backstack[$nNum][$backstack[$nNum][0]]) While _IEPropertyGet($oIE[$nNum], "locationurl") <> $backstack[$nNum][$backstack[$nNum][0]] Sleep(10) WEnd $frskip = 1 testhistory($nNum) flashrefresh($nNum) EndFunc ;==>historyback Func historyforward($nNum) GUICtrlSetState($Forward, $GUI_DISABLE) GUICtrlSetState($Forward2, $GUI_DISABLE) $backstack[$nNum][0] += 1 Navigate($nNum, $backstack[$nNum][$backstack[$nNum][0]]) While _IEPropertyGet($oIE[$nNum], "locationurl") <> $backstack[$nNum][$backstack[$nNum][0]] Sleep(10) WEnd $frskip = 1 testhistory($nNum) flashrefresh($nNum) EndFunc ;==>historyforward Func test() _ArrayDisplay($backstack) EndFunc ;==>test Func flashrefresh($nNum) GUICtrlSetState($flasher[$nNum], $GUI_SHOW) GUICtrlSetState($flasher[$nNum], $GUI_HIDE) EndFunc ;==>flashrefresh Edited December 25, 2007 by Jex My scripts : Immediate Window , My Web Browser , Travian , Text Effect , Characters & Words per minute or second , Image Editor (ImageMagick) , Matrix style background effect ( Screensaver ) , Mail Sender , Protectlinks decoder and Rapidshare links checker , Fonts Fetcher , Region determine , Compare pictures , Gradient color box , Mouse Coordinates, Colors, Pixel Search things , Encrypt/Decrypt and embeding file in jpeg thing , Hard disk space monitor , Reflex game , Multiplayer Tic Tac Toe , WLM ( MSN ) personal message changer Link to comment Share on other sites More sharing options...
DW1 Posted December 25, 2007 Share Posted December 25, 2007 (edited) Okay, it should be stable enough to create tabs and navigate them without crashing. We need to ask Dale if there is a way to capture the links clicked that open up in a new IE window, so that we can point them back to the original tab or even a new tab, but not a whole new non embedded IE window. Do we need to capture clicks on the page to do this properly? Anyways, I will implement the dropdown menu's later too, but for now I just have this working script: -Added ability to create up to 10 tabs -Fixed newly created tab display problem (with flash refresh workaround) -Changed the way the initial $backstack url array is created for each NEW tab -I think that you should have a new way to store the homepage, rather than just using the one in IE. I have all new tabs pointing to google for now. It would be nice if there was a preference screen where you could tell it, how many initial tabs need to be opened (1 - 10), and what the default "home page" is for each of those. Things to implement: - When in the URL edit box, enter should trigger the navigation. - Drop down menus - Resize-able GUI - Fullscreen mode - Make the delete tab work (this will be a bit tricky, I think we will want to modify the way the next tab number is selected on OpenTab to make this job a bit easier ( I'm thinking an array of used and unused tab numbers, so we can just remove tab numbers and they can then be reused, instead of shifting all the other tabs above it back down), but again it's late, so maybe none of this is making sense LOL) - ... Dunno, it's late.. cannot think straight, I'm sure there are plenty of others expandcollapse popup#include <GUIConstants.au3> #include <GuiTab.au3> #include <IE.au3> #include <GuiStatusBar.au3> #include <array.au3> HotKeySet("!t", "test") Global $Tab[11], $oIE[11], $Obj[11], $flasher[11], $backstack[11][2], $init = 1 Global $Title = "My Web Browser", $TabPos1 = 5, $TabPos2 = 35, $TabPos3 = 850, $TabPos4 = 650, $Status = 0, $Title2, $Status2 = "", $frskip = 0, $Count = 1 _IEErrorHandlerRegister() $Form = GUICreate($Title, $TabPos3 + 10, $TabPos4 + 30) $FileMenu = GUICtrlCreateMenu("File") $FileOpenTab = GUICtrlCreateMenuItem("New Tab", $FileMenu) $EditMenu = GUICtrlCreateMenu("Edit") $Cut = GUICtrlCreateMenuItem("Cut", $EditMenu) $Copy = GUICtrlCreateMenuItem("Copy", $EditMenu) $Paste = GUICtrlCreateMenuItem("Paste", $EditMenu) $Sep = GUICtrlCreateMenuItem("", $EditMenu) $Selectall = GUICtrlCreateMenuItem("Select All", $EditMenu) $StatusBar = _GUICtrlStatusBar_Create($Form) Local $aParts[1] = [500] _GUICtrlStatusBar_SetParts($StatusBar, $aParts) $Input = GUICtrlCreateInput("", 7, 7, 305, 22) $Go = GUICtrlCreateButton("Go", 336, 5, 35, 25, 0) $Back = GUICtrlCreateButton("Back", 376, 5, 43, 25, 0) $Forward = GUICtrlCreateButton("Forward", 440, 5, 59, 25, 0) $Stop = GUICtrlCreateButton("Stop", 520, 5, 43, 25, 0) $Refresh = GUICtrlCreateButton("Refresh", 568, 5, 59, 25, 0) $Home = GUICtrlCreateButton("Home", 632, 5, 43, 25, 0) $Back2 = GUICtrlCreateButton("v", 418, 5, 17, 25) $Forward2 = GUICtrlCreateButton("v", 498, 5, 17, 25) $Go2 = GUICtrlCreateButton("v", 320, 5, 17, 25, 0) $CloseTab = GUICtrlCreateButton("X", 832, 36, 19, 17, 0) $CreateTab = GUICtrlCreateTab($TabPos1, $TabPos2, $TabPos3, $TabPos4 - 50) GUICtrlSetState($Back, $GUI_DISABLE) GUICtrlSetState($Forward, $GUI_DISABLE) GUICtrlSetState($Back2, $GUI_DISABLE) GUICtrlSetState($Forward2, $GUI_DISABLE) OpenTab(1, "http://www.google.com/") OpenTab(2, "http://www.yahoo.com/") OpenTab(3, "http://www.autoitscript.com/forum/index.php") $init = 0 GUISetState() While 1 $msg = GUIGetMsg() Switch $msg Case $GUI_EVENT_CLOSE Exit Case $Go Navigate(GetTab(), GUICtrlRead($Input)) Case $Back historyback(GetTab()) Case $Forward historyforward(GetTab()) Case $Stop _IEAction($oIE[GetTab()], "stop") Case $Refresh _IEAction($oIE[GetTab()], "refresh") Case $Home _IEAction($oIE[GetTab()], "home") Case $FileOpenTab OpenTab($Count, "google.com") Case $Cut _IEAction($oIE[GetTab()], "cut") Case $Copy _IEAction($oIE[GetTab()], "copy") Case $Paste _IEAction($oIE[GetTab()], "paste") Case $Selectall _GUICtrlTab_SetCurFocus($CreateTab, GetTab() - 1) _IEAction($oIE[GetTab()], "selectall") EndSwitch testhistory(GetTab()) CheckTitle() CheckStatusBar() Sleep(10) WEnd Func CheckTitle() $CurrentTitle = _IEPropertyGet($oIE[GetTab()], "title") If $CurrentTitle <> $Title2 Then WinSetTitle($Form, "", $CurrentTitle & " - " & $Title) $Title2 = $CurrentTitle EndIf EndFunc ;==>CheckTitle Func CheckStatusBar() If _IEPropertyGet($oIE[GetTab()], "busy") And $Status2 <> _IEPropertyGet($oIE[GetTab()], "locationurl") Then _GUICtrlStatusBar_SetText($StatusBar, "Opening page " & _IEPropertyGet($oIE[GetTab()], "locationurl") & "...") GUICtrlSetState($Stop, $GUI_ENABLE) $Status2 = _IEPropertyGet($oIE[GetTab()], "locationurl") ElseIf Not _IEPropertyGet($oIE[GetTab()], "busy") And $Status2 <> "" Then _GUICtrlStatusBar_SetText($StatusBar, " ") GUICtrlSetState($Stop, $GUI_DISABLE) $Status2 = "" EndIf EndFunc ;==>CheckStatusBar Func OpenTab($oNum, $oLink = "about:blank") If $Count > 10 Then MsgBox(0, "Error", "You may only have 10 tabs open at one time") Return @error EndIf $Count += 1 $backstack[$oNum][0] = 0 $Tab[$oNum] = GUICtrlCreateTabItem($oNum) $oIE[$oNum] = _IECreateEmbedded() $Obj[$oNum] = GUICtrlCreateObj($oIE[$oNum], $TabPos1 + 5, $TabPos2 + 25, $TabPos3 - 10, $TabPos4 - 80) $flasher[$oNum] = GUICtrlCreateEdit("", $TabPos1 + 5, $TabPos2 + 25, $TabPos3 - 10, $TabPos4 - 80) GUICtrlSetState($flasher[$oNum], $GUI_HIDE) If $oLink <> "" Then Navigate($oNum, $oLink) testhistory($oNum) EndIf If $init = 0 Then _GUICtrlTab_SetCurSel($CreateTab, $Count - 2) EndIf EndFunc ;==>OpenTab Func Navigate($nNum, $nLink) _IENavigate($oIE[$nNum], $nLink, 0) $nLink = StringReplace($nLink, "http://", "") $nLink = StringReplace($nLink, "www.", "") If StringInStr($nLink, "/") Then $nLink = StringSplit($nLink, "/") $nLink = $nLink[1] EndIf If StringLen($nLink) > 25 Then $nLink = StringLeft($nLink, 25) & "..." GUICtrlSetData($Tab[$nNum], $nLink) EndFunc ;==>Navigate Func GetTab() Return _GUICtrlTab_GetCurSel($CreateTab) + 1 EndFunc ;==>GetTab Func testhistory($nNum) If IsArray($backstack) = 0 Then Return If $backstack[$nNum][0] = 0 Then If _IEPropertyGet($oIE[$nNum], "locationurl") <> "" Then $backstack[$nNum][0] += 1 $backstack[$nNum][$backstack[$nNum][0]] = _IEPropertyGet($oIE[$nNum], "locationurl") EndIf EndIf If $backstack[$nNum][$backstack[$nNum][0]] <> _IEPropertyGet($oIE[$nNum], "locationurl") And "" <> _IEPropertyGet($oIE[$nNum], "locationurl") And _IEPropertyGet($oIE[$nNum], "locationurl") <> $backstack[$nNum][$backstack[$nNum][0]] Then $backstack[$nNum][0] += 1 $newurl = _IEPropertyGet($oIE[$nNum], "locationurl") If $backstack[$nNum][0] + 1 > UBound($backstack, 2) Then ReDim $backstack[11][$backstack[$nNum][0] + 1] If $backstack[$nNum][$backstack[$nNum][0]] <> "" Then For $avar = $backstack[$nNum][0] To UBound($backstack, 2) - 1 $backstack[$nNum][$avar] = "" Next EndIf $backstack[$nNum][$backstack[$nNum][0]] = $newurl While _IEPropertyGet($oIE[$nNum], "locationurl") <> $backstack[$nNum][$backstack[$nNum][0]] Sleep(10) WEnd If $frskip = 0 Then flashrefresh($nNum) Else $frskip = 0 EndIf EndIf NavButtons($nNum) EndFunc ;==>testhistory Func NavButtons($nNum) If $backstack[$nNum][0] > 1 And GUICtrlGetState($Back) <> 80 Then GUICtrlSetState($Back, $GUI_ENABLE) GUICtrlSetState($Back2, $GUI_ENABLE) EndIf If $backstack[$nNum][0] = 1 And GUICtrlGetState($Back) <> 144 Then GUICtrlSetState($Back, $GUI_DISABLE) GUICtrlSetState($Back2, $GUI_DISABLE) EndIf If UBound($backstack, 2) - 1 > $backstack[$nNum][0] Then If $backstack[$nNum][$backstack[$nNum][0] + 1] = "" Then If GUICtrlGetState($Forward) <> 144 Then GUICtrlSetState($Forward, $GUI_DISABLE) GUICtrlSetState($Forward2, $GUI_DISABLE) EndIf Else If GUICtrlGetState($Forward) <> 80 Then GUICtrlSetState($Forward, $GUI_ENABLE) GUICtrlSetState($Forward2, $GUI_ENABLE) EndIf EndIf Else If GUICtrlGetState($Forward) <> 144 Then GUICtrlSetState($Forward, $GUI_DISABLE) GUICtrlSetState($Forward2, $GUI_DISABLE) EndIf EndIf EndFunc ;==>NavButtons Func historyback($nNum) GUICtrlSetState($Back, $GUI_DISABLE) GUICtrlSetState($Back2, $GUI_DISABLE) $backstack[$nNum][0] -= 1 Navigate($nNum, $backstack[$nNum][$backstack[$nNum][0]]) While _IEPropertyGet($oIE[$nNum], "locationurl") <> $backstack[$nNum][$backstack[$nNum][0]] Sleep(10) WEnd $frskip = 1 testhistory($nNum) flashrefresh($nNum) EndFunc ;==>historyback Func historyforward($nNum) GUICtrlSetState($Forward, $GUI_DISABLE) GUICtrlSetState($Forward2, $GUI_DISABLE) $backstack[$nNum][0] += 1 Navigate($nNum, $backstack[$nNum][$backstack[$nNum][0]]) While _IEPropertyGet($oIE[$nNum], "locationurl") <> $backstack[$nNum][$backstack[$nNum][0]] Sleep(10) WEnd $frskip = 1 testhistory($nNum) flashrefresh($nNum) EndFunc ;==>historyforward Func test() _ArrayDisplay($backstack) EndFunc ;==>test Func flashrefresh($nNum) GUICtrlSetState($flasher[$nNum], $GUI_SHOW) GUICtrlSetState($flasher[$nNum], $GUI_HIDE) _GUICtrlTab_DeselectAll($CreateTab, False) EndFunc ;==>flashrefresh Edited December 25, 2007 by danwilli AutoIt3 Online Help Link to comment Share on other sites More sharing options...
Jex Posted December 25, 2007 Author Share Posted December 25, 2007 (edited) -Fixed newly created tab display problem (with flash refresh workaround)Still have display problem example open Yahoo tab and try open new tab 90% have display problem. -I think that you should have a new way to store the homepage, rather than just using the one in IE. I have all new tabs pointing to google for now. It would be nice if there was a preference screen where you could tell it, how many initial tabs need to be opened (1 - 10), and what the default "home page" is for each of those.I'm added 2 diffrent new tab menuitem 1. Black page : OpenTab($Count) 2. Home page : OpenTab($Count, "Home") and added "Change Home Page" menu item. Home page link save there : HKEY_LOCAL_MACHINE\SOFTWARE\My Web Browser - When in the URL edit box, enter should trigger the navigation.I'm added NavigateCheck function for check if you focus url edit box and press Enter then navigate page. - Make the delete tab work (this will be a bit tricky, I think we will want to modify the way the next tab number is selected on OpenTab to make this job a bit easier ( I'm thinking an array of used and unused tab numbers, so we can just remove tab numbers and they can then be reused, instead of shifting all the other tabs above it back down), but again it's late, so maybe none of this is making sense LOL)To be honest will be difficult to make delete tab work. First we need make very stable browser and later we can add working delete tab button Because black page display and refresh problem still not fixed. ( Atleast in my pc. Because many times have display problem in start script and after create tab. ) Edit2: Added Show page source menu item and new tab button. By the way still not work true select all. I need focus ie object but i can't find how ( I mean without click that ie page not select all and i don't know how to simulate that click ). Source : expandcollapse popup#include <GUIConstants.au3> #include <GuiTab.au3> #include <IE.au3> #include <GuiStatusBar.au3> #include <array.au3> #include <Misc.au3> HotKeySet("!t", "Test") Global $Tab[11], $oIE[11], $Obj[11], $flasher[11], $backstack[11][2], $init = 1 Global $Title = "My Web Browser", $TabPos1 = 5, $TabPos2 = 35, $TabPos3 = 850, $TabPos4 = 650, $Status = 0, $Title2, $Status2 = "", $frskip = 0, $Count = 1, $HomePage _IEErrorHandlerRegister() $Form = GUICreate($Title, $TabPos3 + 10, $TabPos4 + 30) $FileMenu = GUICtrlCreateMenu("File") $FileOpenTab = GUICtrlCreateMenu("New Tab", $FileMenu) $OpenTab1 = GUICtrlCreateMenuItem("Open Blank Page", $FileOpenTab) $OpenTab2 = GUICtrlCreateMenuItem("Open Home Page", $FileOpenTab) $ShowSource = GUICtrlCreateMenuItem("Show Page Source", $FileMenu) $EditMenu = GUICtrlCreateMenu("Edit") $Cut = GUICtrlCreateMenuItem("Cut", $EditMenu) $Copy = GUICtrlCreateMenuItem("Copy", $EditMenu) $Paste = GUICtrlCreateMenuItem("Paste", $EditMenu) $Sep = GUICtrlCreateMenuItem("", $EditMenu) $Selectall = GUICtrlCreateMenuItem("Select All", $EditMenu) $SettingsMenu = GUICtrlCreateMenu("Settings") $ChangeHomePage = GUICtrlCreateMenuItem("Change Home Page", $SettingsMenu) $StatusBar = _GUICtrlStatusBar_Create($Form) Local $aParts[1] = [500] _GUICtrlStatusBar_SetParts($StatusBar, $aParts) $Input = GUICtrlCreateInput("", 7, 7, 305, 22) $Go = GUICtrlCreateButton("Go", 336, 5, 35, 25) $Back = GUICtrlCreateButton("Back", 376, 5, 43, 25) $Forward = GUICtrlCreateButton("Forward", 440, 5, 59, 25) $Stop = GUICtrlCreateButton("Stop", 520, 5, 43, 25) $Refresh = GUICtrlCreateButton("Refresh", 568, 5, 59, 25) $Home = GUICtrlCreateButton("Home", 632, 5, 43, 25) $Back2 = GUICtrlCreateButton("v", 418, 5, 17, 25) $Forward2 = GUICtrlCreateButton("v", 498, 5, 17, 25) $Go2 = GUICtrlCreateButton("v", 320, 5, 17, 25) $NewTab = GUICtrlCreateButton("New Tab", 680, 5, 65, 25) $CloseTab = GUICtrlCreateButton("X", 832, 36, 19, 17) $CreateTab = GUICtrlCreateTab($TabPos1, $TabPos2, $TabPos3, $TabPos4 - 50) GUICtrlSetState($Back, $GUI_DISABLE) GUICtrlSetState($Forward, $GUI_DISABLE) GUICtrlSetState($Back2, $GUI_DISABLE) GUICtrlSetState($Forward2, $GUI_DISABLE) $HomePage = CheckHomePage() OpenTab(1, "Home") OpenTab(2, "http://www.yahoo.com/") OpenTab(3, "http://www.autoitscript.com/forum/index.php") $init = 0 GUISetState() While 1 $msg = GUIGetMsg() Switch $msg Case $GUI_EVENT_CLOSE Exit Case $Go Navigate(GetTab(), GUICtrlRead($Input)) Case $Back HistoryBack(GetTab()) Case $Forward HistoryForward(GetTab()) Case $Stop _IEAction($oIE[GetTab()], "stop") Case $Refresh _IEAction($oIE[GetTab()], "refresh") Case $Home Navigate(GetTab(), "Home") Case $OpenTab1 OpenTab($Count) Case $OpenTab2 OpenTab($Count, "Home") Case $Cut _IEAction($oIE[GetTab()], "cut") Case $Copy _IEAction($oIE[GetTab()], "copy") Case $Paste _IEAction($oIE[GetTab()], "paste") Case $Selectall _GUICtrlTab_SetCurFocus($CreateTab, GetTab() - 1) _IEAction($oIE[GetTab()], "selectall") Case $ChangeHomePage $hPage = InputBox("Home Page", "Set default home page :", $HomePage, "", 200, 130) If Not @error Then $HomePage = $hPage RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\My Web Browser", "Home Page", "REG_SZ", $HomePage) EndIf Case $NewTab OpenTab($Count, "Home") Case $ShowSource If FileExists(@TempDir & "\Source.txt") Then FileDelete(@TempDir & "\Source.txt") $Source = _IEDocReadHTML($oIE[GetTab()]) FileWrite(@TempDir & "\Source.txt", $Source) ShellExecute(@TempDir & "\Source.txt") EndSwitch TestHistory(GetTab()) CheckTitle() CheckStatusBar() NavigateCheck() Sleep(10) WEnd Func CheckTitle() $CurrentTitle = _IEPropertyGet($oIE[GetTab()], "title") If $CurrentTitle <> $Title2 Then WinSetTitle($Form, "", $CurrentTitle & " - " & $Title) $Title2 = $CurrentTitle EndIf EndFunc ;==>CheckTitle Func CheckStatusBar() If _IEPropertyGet($oIE[GetTab()], "busy") And $Status2 <> _IEPropertyGet($oIE[GetTab()], "locationurl") Then _GUICtrlStatusBar_SetText($StatusBar, "Opening page " & _IEPropertyGet($oIE[GetTab()], "locationurl") & "...") GUICtrlSetState($Stop, $GUI_ENABLE) $Status2 = _IEPropertyGet($oIE[GetTab()], "locationurl") ElseIf Not _IEPropertyGet($oIE[GetTab()], "busy") And $Status2 <> "" Then _GUICtrlStatusBar_SetText($StatusBar, " ") GUICtrlSetState($Stop, $GUI_DISABLE) $Status2 = "" EndIf EndFunc ;==>CheckStatusBar Func OpenTab($oNum, $oLink = "") If $Count > 10 Then MsgBox(0, "Error", "You may only have 10 tabs open at one time") Return @error EndIf $Count += 1 $backstack[$oNum][0] = 0 $Tab[$oNum] = GUICtrlCreateTabItem($oNum) $oIE[$oNum] = _IECreateEmbedded() $Obj[$oNum] = GUICtrlCreateObj($oIE[$oNum], $TabPos1 + 5, $TabPos2 + 25, $TabPos3 - 10, $TabPos4 - 80) $flasher[$oNum] = GUICtrlCreateEdit("", $TabPos1 + 5, $TabPos2 + 25, $TabPos3 - 10, $TabPos4 - 80) GUICtrlSetState($flasher[$oNum], $GUI_HIDE) Navigate($oNum, $oLink) TestHistory($oNum) If $init = 0 Then _GUICtrlTab_SetCurSel($CreateTab, $Count - 2) EndIf EndFunc ;==>OpenTab Func Navigate($nNum, $nLink) If $nLink = "" Then $nLink = "about:blank" _IENavigate($oIE[$nNum], $nLink, 0) GUICtrlSetData($Tab[$nNum], "Blank Page") Else If $nLink = "Home" Then $nLink = $HomePage _IENavigate($oIE[$nNum], $nLink, 0) $nLink = StringReplace($nLink, "http://", "") $nLink = StringReplace($nLink, "www.", "") If StringInStr($nLink, "/") Then $nLink = StringSplit($nLink, "/") $nLink = $nLink[1] EndIf If StringLen($nLink) > 25 Then $nLink = StringLeft($nLink, 25) & "..." GUICtrlSetData($Tab[$nNum], $nLink) EndIf EndFunc ;==>Navigate Func NavigateCheck() If _IsPressed("0D") And ControlGetFocus($Form) = "Edit1" Then Navigate(GetTab(), GUICtrlRead($Input)) GUICtrlSetState($Input, $GUI_FOCUS) EndIf EndFunc ;==>NavigateCheck Func CheckHomePage() $hPage = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\My Web Browser", "Home Page") If @error Then $hPage = "http://www.google.com" Return $hPage EndFunc Func GetTab() Return _GUICtrlTab_GetCurSel($CreateTab) + 1 EndFunc ;==>GetTab Func TestHistory($nNum) If IsArray($backstack) = 0 Then Return If $backstack[$nNum][0] = 0 Then If _IEPropertyGet($oIE[$nNum], "locationurl") <> "" Then $backstack[$nNum][0] += 1 $backstack[$nNum][$backstack[$nNum][0]] = _IEPropertyGet($oIE[$nNum], "locationurl") EndIf EndIf If $backstack[$nNum][$backstack[$nNum][0]] <> _IEPropertyGet($oIE[$nNum], "locationurl") And "" <> _IEPropertyGet($oIE[$nNum], "locationurl") And _IEPropertyGet($oIE[$nNum], "locationurl") <> $backstack[$nNum][$backstack[$nNum][0]] Then $backstack[$nNum][0] += 1 $newurl = _IEPropertyGet($oIE[$nNum], "locationurl") If $backstack[$nNum][0] + 1 > UBound($backstack, 2) Then ReDim $backstack[11][$backstack[$nNum][0] + 1] If $backstack[$nNum][$backstack[$nNum][0]] <> "" Then For $avar = $backstack[$nNum][0] To UBound($backstack, 2) - 1 $backstack[$nNum][$avar] = "" Next EndIf $backstack[$nNum][$backstack[$nNum][0]] = $newurl While _IEPropertyGet($oIE[$nNum], "locationurl") <> $backstack[$nNum][$backstack[$nNum][0]] Sleep(10) WEnd If $frskip = 0 Then FlashRefresh($nNum) Else $frskip = 0 EndIf EndIf NavButtons($nNum) EndFunc ;==>TestHistory Func NavButtons($nNum) If $backstack[$nNum][0] > 1 And GUICtrlGetState($Back) <> 80 Then GUICtrlSetState($Back, $GUI_ENABLE) GUICtrlSetState($Back2, $GUI_ENABLE) EndIf If $backstack[$nNum][0] = 1 And GUICtrlGetState($Back) <> 144 Then GUICtrlSetState($Back, $GUI_DISABLE) GUICtrlSetState($Back2, $GUI_DISABLE) EndIf If UBound($backstack, 2) - 1 > $backstack[$nNum][0] Then If $backstack[$nNum][$backstack[$nNum][0] + 1] = "" Then If GUICtrlGetState($Forward) <> 144 Then GUICtrlSetState($Forward, $GUI_DISABLE) GUICtrlSetState($Forward2, $GUI_DISABLE) EndIf Else If GUICtrlGetState($Forward) <> 80 Then GUICtrlSetState($Forward, $GUI_ENABLE) GUICtrlSetState($Forward2, $GUI_ENABLE) EndIf EndIf Else If GUICtrlGetState($Forward) <> 144 Then GUICtrlSetState($Forward, $GUI_DISABLE) GUICtrlSetState($Forward2, $GUI_DISABLE) EndIf EndIf EndFunc ;==>NavButtons Func HistoryBack($nNum) GUICtrlSetState($Back, $GUI_DISABLE) GUICtrlSetState($Back2, $GUI_DISABLE) $backstack[$nNum][0] -= 1 Navigate($nNum, $backstack[$nNum][$backstack[$nNum][0]]) While _IEPropertyGet($oIE[$nNum], "locationurl") <> $backstack[$nNum][$backstack[$nNum][0]] Sleep(10) WEnd $frskip = 1 TestHistory($nNum) FlashRefresh($nNum) EndFunc ;==>HistoryBack Func HistoryForward($nNum) GUICtrlSetState($Forward, $GUI_DISABLE) GUICtrlSetState($Forward2, $GUI_DISABLE) $backstack[$nNum][0] += 1 Navigate($nNum, $backstack[$nNum][$backstack[$nNum][0]]) While _IEPropertyGet($oIE[$nNum], "locationurl") <> $backstack[$nNum][$backstack[$nNum][0]] Sleep(10) WEnd $frskip = 1 TestHistory($nNum) FlashRefresh($nNum) EndFunc ;==>HistoryForward Func Test() _ArrayDisplay($backstack) EndFunc ;==>Test Func FlashRefresh($nNum) GUICtrlSetState($flasher[$nNum], $GUI_SHOW) GUICtrlSetState($flasher[$nNum], $GUI_HIDE) _GUICtrlTab_DeselectAll($CreateTab, False) EndFunc ;==>FlashRefresh Edited December 26, 2007 by Jex My scripts : Immediate Window , My Web Browser , Travian , Text Effect , Characters & Words per minute or second , Image Editor (ImageMagick) , Matrix style background effect ( Screensaver ) , Mail Sender , Protectlinks decoder and Rapidshare links checker , Fonts Fetcher , Region determine , Compare pictures , Gradient color box , Mouse Coordinates, Colors, Pixel Search things , Encrypt/Decrypt and embeding file in jpeg thing , Hard disk space monitor , Reflex game , Multiplayer Tic Tac Toe , WLM ( MSN ) personal message changer Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now