Hey guys,
I have a script that opens a internal wikipage and pulls the HTML data and pulls variables for use in our network configuration automation. I've noticed a few issues. Namely as the title says "IEQUIT" isn't killing the process that it opens like its supposed to. Also after running 3+ pages IE crashes. This just started. I can't see anything in the code that would be causing this.
Any help would be appreciated.
AutoIt
;MAINTENCE EMAIL NOTIFICATION WORKING CORRECTLY..... ;STILL TO DO ---TRAFFIC ADD, AND HARDWARE TESTING ;Date 6-26-13 #include <ButtonConstants.au3> #include <ComboConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <GUIComboBox.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <Array.au3> #include <IE.au3> #include <String.au3> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; GUI CREATION BELOW ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; $C4Automation = GUICreate(" C4 Automation", 615, 438, 188, 121) $Label1 = GUICtrlCreateLabel(" C4 Automation", 32, 24, 564, 41) GUICtrlSetFont(-1, 24, 800, 0, "MS Sans Serif") $ProjectSiteCombo = GUICtrlCreateCombo("", 184, 104, 145, 25, BitOR($CBS_DROPDOWNLIST, $CBS_SORT)) $ProjectTypeCombo = GUICtrlCreateCombo("", 184, 136, 145, 25, BitOR($CBS_DROPDOWNLIST, $CBS_SORT)) $ProjectNameInputBox = GUICtrlCreateInput("Project Name", 184, 168, 161, 21, $ES_UPPERCASE) $NumberofProjects = GUICtrlCreateInput("Number of Projects", 184, 200, 161, 21) $Submit = GUICtrlCreateButton("Submit", 136, 264, 75, 25) GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif") $Exit = GUICtrlCreateButton("Exit", 256, 264, 75, 25) GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif") $Label2 = GUICtrlCreateLabel("Choose Your Project Type:", 24, 140, 156, 17) GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif") $Label3 = GUICtrlCreateLabel("Choose Your Project Site:", 24, 108, 150, 17) GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif") $Label4 = GUICtrlCreateLabel("Input Your Project Name:", 24, 172, 147, 17) GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif") $Label5 = GUICtrlCreateLabel("Input Number of Projects", 24, 204, 145, 17) GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif") $Label6 = GUICtrlCreateLabel("Choose Your Project Side", 24, 236, 149, 17) GUICtrlSetState(-1, $GUI_HIDE) GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif") $ProjectSideCombo = GUICtrlCreateCombo("", 184, 232, 145, 25, BitOR($CBS_DROPDOWN, $CBS_SORT)) GUICtrlSetState(-1, $GUI_HIDE) $EmailEdit = GUICtrlCreateEdit("", 32, 72, 761, 401, BitOR($ES_MULTILINE, $WS_VSCROLL)) GUICtrlSetState(-1, $GUI_HIDE) GUICtrlSetData(-1, "") $CopyButton = GUICtrlCreateButton("Copy To Clipboard", 680, 480, 99, 25) GUICtrlSetState(-1, $GUI_HIDE) GUISetState(@SW_SHOW) Global $I = 0 GUICtrlSetData($ProjectTypeCombo, "C4|RDC Interconnect|System Connection", "") GUICtrlSetData($ProjectSideCombo, "A-Side|Z-Side", "") GUICtrlSetData($ProjectSiteCombo, "Duke|Baton Rouge|Hampton Roads|Kansas|Las Vegas (Northwest)|New Orleans|NOVA|OKC|Omaha|Orange County|Phoenix (Chandler)|Rhode Island|San Diego (Federal)|El Cajon (San Diego)|McDowell (Phoenix)|Las Vegas (Southeast)|Virginia Beach (Hampton Roads)|Cleveland|Gainesville|Macon|Pensacola|Roanoke|Tulsa|Deer Valley|Ashburn|Los Angeles|Marietta|New York|San Jose", "Choose A Site") ; add other item snd set a new default ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; GUI CREATION ABOVE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Exit Exit Case $ProjectTypeCombo If GUICtrlRead($ProjectTypeCombo) = ("C4") Then GUICtrlSetState($ProjectSideCombo, $GUI_SHOW) If GUICtrlRead($ProjectTypeCombo) = ("C4") Then GUICtrlSetState($Label6, $GUI_SHOW) EndIf EndIf Case $Submit If GUICtrlRead($ProjectTypeCombo) = "System Connection" Then;;Looks to see that the "System Connection" selection was made in the drop down box. EndIf If GUICtrlRead($ProjectTypeCombo) = "C4" Then;;Looks to see that the " C4" selection was made in the drop down box. _C4Project_Maintenance_Email_Notification() EndIf If GUICtrlRead($ProjectTypeCombo) = "RDC Interconnect" Then ;;Looks to see that the "RDC Interconnect" selection was made in the drop down box. EndIf Case $CopyButton ; When the copy to clipboard button is pressed on the email screen it will copy the contents of the "emailedit" box to the clipboard so that it can be pasted into another application. ClipPut(GUICtrlRead($EmailEdit)) EndSwitch WEnd Func _C4Project_Maintenance_Email_Notification() Local $oIE = _IECreate("https://internalsite/mediawiki/index.php?title=" & GUICtrlRead($ProjectNameInputBox) & "&action=edit", 0, 0, 1, 1) _IELinkClickByText($oIE, "Continue to this website (not recommended).") Local $data = $oIE Local $string = _IEBodyReadHTML($oIE) _IEQuit($oIE) Local $projectnextstep = _StringBetween($string, '|NextStep=', @CRLF);;;;;; WORKS AND IS IN A LOOP Local $circuitid = _StringBetween($string, '|CircuitID=', @CRLF);;;;;;;;;;;;;;;;;;;;;;;;;;;WORKS AND IS IN A LOO Local $asideengineer = _StringBetween($string, '|ASideAssignedEngineer=', @CRLF) Local $zsideengineer = _StringBetween($string, '|ZSideAssignedEngineer=', @CRLF) Local $asidenextstep = _StringBetween($string, '|ASideNextStep=', @CRLF) Local $zsidenextstep = _StringBetween($string, '|ZSideNextStep=', @CRLF) Local $asiderouter = _StringBetween($string, '|ALocation=', @CRLF) Local $zsiderouter = _StringBetween($string, '|ZLocation=', @CRLF) Local $asideinterface = _StringBetween($string, '|AInterface=', @CRLF) Local $zsideinterface = _StringBetween($string, '|ZInterface=', @CRLF) Local $asidetransport = _StringBetween($string, '|ATransportLocation=', @CRLF) Local $zsidetransport = _StringBetween($string, '|ZTransportLocation=', @CRLF) Local $asidefpc = _StringBetween($string, '|AFPC=', @CRLF) Local $zsidefpc = _StringBetween($string, '|ZFPC=', @CRLF) Local $asidepic = _StringBetween($string, '|APIC=', @CRLF) Local $zsidepic = _StringBetween($string, '|ZPIC=', @CRLF) Local $asideoptics = _StringBetween($string, '|AOptics=', @CRLF) Local $zsideoptics = _StringBetween($string, '|ZOptics=', @CRLF) Local $asidetam = _StringBetween($string, '|ATAM=', @CRLF) Local $zsidetam = _StringBetween($string, '|ZTAM=', @CRLF) Local $asidetom = _StringBetween($string, '|ATOM=', @CRLF) Local $zsidetom = _StringBetween($string, '|ZTOM=', @CRLF) Local $asidetestip = _StringBetween($string, '|ATestingIP=', @CRLF) Local $zsidetestip = _StringBetween($string, '|ZTestingIP=', @CRLF) Local $bypassname = _StringBetween($string, '|BypassName=', @CRLF) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; $c4file = FileOpen("c4.txt", 1) FileWrite($c4file, GUICtrlRead($ProjectSiteCombo)) FileWrite($c4file, ",") FileWrite($c4file, @CRLF & @CRLF) FileWrite($c4file, "We recently have launched the below C4 projects for your system. We need on site assistance to perform the maintenance. Please let us know who the Point of Contact for this activity will be so we can ship the hardware and plan the maintenance. " & @CRLF & @CRLF & @CRLF & @CRLF & "Details for Capacity Projects:") FileWrite($c4file, @CRLF & @CRLF) FileWrite($c4file, "Project: ") FileWrite($c4file, GUICtrlRead($ProjectNameInputBox)) FileWrite($c4file, @CRLF & @CRLF) FileWrite($c4file, "These projects are to add an additional ") FileWrite($c4file, GUICtrlRead($NumberofProjects) * 10) FileWrite($c4file, "GB of capacity between ") FileWrite($c4file, $asiderouter[0]) FileWrite($c4file, " and ") FileWrite($c4file, $zsiderouter[0]) FileWrite($c4file, ".") FileWrite($c4file, @CRLF & @CRLF) If GUICtrlRead($ProjectSideCombo) = ("A-Side") Then FileWrite($c4file, $asiderouter[0]) FileWrite($c4file, ": Connect fiber into ") FileWrite($c4file, $asideinterface[0]) FileWrite($c4file, @CRLF) FileWrite($c4file, "Infinera: Connect fiber into ") FileWrite($c4file, $asidetransport[0]) FileWrite($c4file, @CRLF) FileClose($c4file) If Not $asidefpc = "" Then $c4file = FileOpen("c4.txt", 1) FileWrite($c4file, $asiderouter[0]) FileWrite($c4file, ": Install FPC into slot ") $aArray = _StringBetween($asideinterface[0], "-", "/", 3) FileWrite($c4file, _ArrayToString($aArray)) FileWrite($c4file, @CRLF) FileClose($c4file) EndIf If Not $asidepic = "" Then $c4file = FileOpen("c4.txt", 1) FileWrite($c4file, $asiderouter[0]) FileWrite($c4file, ": Install PIC into slot ") $aArray2 = _StringBetween($asideinterface[0], "/", "/", 3) FileWrite($c4file, _ArrayToString($aArray) & "/" & _ArrayToString($aArray2)) FileWrite($c4file, @CRLF) FileClose($c4file) EndIf If Not $asideoptics = "" Then $c4file = FileOpen("c4.txt", 1) FileWrite($c4file, $asiderouter) FileWrite($c4file, ": Install Optics into slot ") FileWrite($c4file, $asideinterface) FileWrite($c4file, @CRLF) FileClose($c4file) EndIf EndIf If GUICtrlRead($ProjectSideCombo) = ("Z-Side") Then FileWrite($c4file, $zsiderouter[0]) FileWrite($c4file, ": Connect fiber into ") FileWrite($c4file, $zsideinterface[0]) FileWrite($c4file, @CRLF) FileWrite($c4file, "Infinera: Connect fiber into ") FileWrite($c4file, $zsidetransport[0]) FileWrite($c4file, @CRLF) FileClose($c4file) If Not $zsidefpc = "" Then $c4file = FileOpen("c4.txt", 1) FileWrite($c4file, $zsiderouter[0]) FileWrite($c4file, ": Install FPC into slot ") $aArray = _StringBetween($zsideinterface, "-", "/", 3) FileWrite($c4file, _ArrayToString($aArray)) FileWrite($c4file, @CRLF) FileClose($c4file) EndIf If Not $zsidepic = "" Then $c4file = FileOpen("c4.txt", 1) FileWrite($c4file, $zsiderouter) FileWrite($c4file, ": Install PIC into slot ") $aArray2 = _StringBetween($zsideinterface[0], "/", "/", 3) FileWrite($c4file, _ArrayToString($aArray) & "/" & _ArrayToString($aArray2)) FileWrite($c4file, @CRLF) FileClose($c4file) EndIf If Not $zsideoptics = "" Then $c4file = FileOpen("c4.txt", 1) FileWrite($c4file, $zsiderouter[0]) FileWrite($c4file, ": Install Optics into slot ") FileWrite($c4file, $zsideinterface[0]) FileWrite($c4file, @CRLF) FileClose($c4file) EndIf EndIf ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; This will check to see the number of projects is less than $I, if so it will increment ;by one to then see if $I = the number of projects. If so then it will Ask if you are done or if you have more projects to add. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; If (GUICtrlRead($NumberofProjects)) > 1 Then $I = $I + 1 Call("_MultipleC4Projects") EndIf If (GUICtrlRead($NumberofProjects)) = 1 Then $c4file = FileOpen("c4.txt", 1) FileWrite($c4file, @CRLF) FileWrite($c4file, "Connect fiber between ports.") FileClose($c4file) $Question = MsgBox(4, "C4 Automation", "Do you have more projects for this site?") If $Question = 6 Then GUICtrlSetData($ProjectNameInputBox, "") GUICtrlSetData($NumberofProjects, "") _GUICtrlComboBox_SetCurSel($ProjectSiteCombo, 0) _GUICtrlComboBox_SetCurSel($ProjectTypeCombo, 0) ;_GUICtrlComboBox_ResetContent($ProjectSiteCombo) GUICtrlSetState($ProjectSiteCombo, $gui_focus) EndIf If $Question = 7 Then Call("_NoMoreC4Projects") EndIf EndIf EndFunc ;==>_C4Project_Maintenance_Email_Notification Func _MultipleC4Projects() Do Local $aprojincr = StringRegExp(GUICtrlRead($ProjectNameInputBox), "(?<=-\d{2})([A-Z])(?=-Q)", 3) Local $incr_char = Chr(Asc($aprojincr[0]) + 1) GUICtrlSetData($ProjectNameInputBox, StringRegExpReplace(GUICtrlRead($ProjectNameInputBox), _ "(?<=-\d{2})([A-Z])(?=-Q)", $incr_char)) Local $oIE = _IECreate("https://internalsite/mediawiki/index.php?title=" & GUICtrlRead($ProjectNameInputBox) & "&action=edit", 0, 0, 1, 1) _IELinkClickByText($oIE, "Continue to this website (not recommended).") Local $data = $oIE Local $string = _IEBodyReadHTML($oIE) _IEQuit($oIE) Local $projectnextstep = _StringBetween($string, '|NextStep=', @CRLF);;;;;; WORKS AND IS IN A LOOP Local $circuitid = _StringBetween($string, '|CircuitID=', @CRLF);;;;;;;;;;;;;;;;;;;;;;;;;;;WORKS AND IS IN A LOO Local $asideengineer = _StringBetween($string, '|ASideAssignedEngineer=', @CRLF) Local $zsideengineer = _StringBetween($string, '|ZSideAssignedEngineer=', @CRLF) Local $asidenextstep = _StringBetween($string, '|ASideNextStep=', @CRLF) Local $zsidenextstep = _StringBetween($string, '|ZSideNextStep=', @CRLF) Local $asiderouter = _StringBetween($string, '|ALocation=', @CRLF) Local $zsiderouter = _StringBetween($string, '|ZLocation=', @CRLF) Local $asideinterface = _StringBetween($string, '|AInterface=', @CRLF) Local $zsideinterface = _StringBetween($string, '|ZInterface=', @CRLF) Local $asidetransport = _StringBetween($string, '|ATransportLocation=', @CRLF) Local $zsidetransport = _StringBetween($string, '|ZTransportLocation=', @CRLF) Local $asidefpc = _StringBetween($string, '|AFPC=', @CRLF) Local $zsidefpc = _StringBetween($string, '|ZFPC=', @CRLF) Local $asidepic = _StringBetween($string, '|APIC=', @CRLF) Local $zsidepic = _StringBetween($string, '|ZPIC=', @CRLF) Local $asideoptics = _StringBetween($string, '|AOptics=', @CRLF) Local $zsideoptics = _StringBetween($string, '|ZOptics=', @CRLF) Local $asidetam = _StringBetween($string, '|ATAM=', @CRLF) Local $zsidetam = _StringBetween($string, '|ZTAM=', @CRLF) Local $asidetom = _StringBetween($string, '|ATOM=', @CRLF) Local $zsidetom = _StringBetween($string, '|ZTOM=', @CRLF) Local $asidetestip = _StringBetween($string, '|ATestingIP=', @CRLF) Local $zsidetestip = _StringBetween($string, '|ZTestingIP=', @CRLF) Local $bypassname = _StringBetween($string, '|BypassName=', @CRLF) $c4file = FileOpen("c4.txt", 1) FileWrite($c4file, @CRLF) If GUICtrlRead($ProjectSideCombo) = ("A-Side") Then FileWrite($c4file, $asiderouter[0]) FileWrite($c4file, ": Connect fiber into ") FileWrite($c4file, $asideinterface[0]) FileWrite($c4file, @CRLF) FileWrite($c4file, "Infinera: Connect fiber into ") FileWrite($c4file, $asidetransport[0]) FileWrite($c4file, @CRLF) FileClose($c4file) If Not $asidefpc = "" Then $c4file = FileOpen("c4.txt", 1) FileWrite($c4file, $asiderouter[0]) FileWrite($c4file, ": Install FPC into slot ") $aArray = _StringBetween($asideinterface[0], "-", "/", 3) FileWrite($c4file, _ArrayToString($aArray)) FileWrite($c4file, @CRLF) FileClose($c4file) EndIf If Not $asidepic = "" Then $c4file = FileOpen("c4.txt", 1) FileWrite($c4file, $asiderouter[0]) FileWrite($c4file, ": Install PIC into slot ") $aArray2 = _StringBetween($asideinterface[0], "/", "/", 3) FileWrite($c4file, _ArrayToString($aArray) & "/" & _ArrayToString($aArray2)) FileWrite($c4file, @CRLF) FileClose($c4file) EndIf If Not $asideoptics = "" Then $c4file = FileOpen("c4.txt", 1) FileWrite($c4file, $asiderouter) FileWrite($c4file, ": Install Optics into slot ") FileWrite($c4file, $asideinterface) FileWrite($c4file, @CRLF) FileClose($c4file) EndIf EndIf If GUICtrlRead($ProjectSideCombo) = ("Z-Side") Then FileWrite($c4file, $zsiderouter[0]) FileWrite($c4file, ": Connect fiber into ") FileWrite($c4file, $zsideinterface[0]) FileWrite($c4file, @CRLF) FileWrite($c4file, "Infinera: Connect fiber into ") FileWrite($c4file, $zsidetransport[0]) FileWrite($c4file, @CRLF) FileClose($c4file) If Not $zsidefpc = "" Then $c4file = FileOpen("c4.txt", 1) FileWrite($c4file, $zsiderouter[0]) FileWrite($c4file, ": Install FPC into slot ") $aArray = _StringBetween($zsideinterface, "-", "/", 3) FileWrite($c4file, _ArrayToString($aArray)) FileWrite($c4file, @CRLF) FileClose($c4file) EndIf If Not $zsidepic = "" Then $c4file = FileOpen("c4.txt", 1) FileWrite($c4file, $zsiderouter) FileWrite($c4file, ": Install PIC into slot ") $aArray2 = _StringBetween($zsideinterface[0], "/", "/", 3) FileWrite($c4file, _ArrayToString($aArray) & "/" & _ArrayToString($aArray2)) FileWrite($c4file, @CRLF) FileClose($c4file) EndIf If Not $zsideoptics = "" Then $c4file = FileOpen("c4.txt", 1) FileWrite($c4file, $zsiderouter[0]) FileWrite($c4file, ": Install Optics into slot ") FileWrite($c4file, $zsideinterface[0]) FileWrite($c4file, @CRLF) FileClose($c4file) EndIf EndIf $I = ($I + 1) Until $I = (GUICtrlRead($NumberofProjects)) If $I = (GUICtrlRead($NumberofProjects)) Then $Question = MsgBox(4, "C4 Automation", "Do you have more projects for this site?") If $Question = 6 Then GUICtrlSetData($ProjectNameInputBox, "") GUICtrlSetData($NumberofProjects, "") _GUICtrlComboBox_SetCurSel($ProjectSiteCombo, 0) _GUICtrlComboBox_SetCurSel($ProjectTypeCombo, 0) GUICtrlSetState($ProjectSiteCombo, $gui_focus) EndIf If $Question = 7 Then $c4file = FileOpen("c4.txt", 1) FileWrite($c4file, @CRLF) FileWrite($c4file, "Connect fiber between ports.") FileClose($c4file) Call("_NoMoreC4Projects") EndIf EndIf EndFunc ;==>_MultipleC4Projects Func _NoMoreC4Projects() Local $c4file GUISetState(@SW_HIDE) ClipPut($c4file = FileOpen("c4.txt", 1)) $EmailForm = GUICreate(" Maintenance Email Notification", 831, 518, 188, 222) $CoxLabel = GUICtrlCreateLabel(" Maintenance Email Notification ", 25, 22, 780, 41) GUICtrlSetFont(-1, 24, 400, 0, "MS Sans Serif") $EmailEdit = GUICtrlCreateEdit("", 32, 72, 761, 401, BitOR($ES_MULTILINE, $WS_VSCROLL)) GUICtrlSetState(-1, $GUI_HIDE) GUICtrlSetData(-1, "") $CopyButton = GUICtrlCreateButton("Copy To Clipboard", 680, 480, 99, 25) Local $test = FileRead("c4.txt") ClipPut($test) FileClose($c4file) FileDelete("c4.txt") GUICtrlSetData($EmailEdit, ClipGet()) GUICtrlSetState($EmailEdit, $GUI_SHOW) GUISetState(@SW_SHOW) EndFunc ;==>_NoMoreC4Projects