#comments-Start ################################################################################################################################# # File Name : IP_Controls.au3 # # Description: This module contains the utility functions for controlling all controls # # REVISION HISTORY: # # DATE: AUTHOR: CHANGE: # ==== ======= ======= # 27 Jun 2016 Shivani Initial Draft # 27 Jun 2016 Shivani Added validation check for enter valid input in combo box. # 30 Jun 2016 Shivani Added string selection check in combo box function. ################################################################################################################################# #comments-end #include #include ;Global $defaultComboBoxVal = 1; ;############################################################################################## ; METHOD NAME : checkFieldActiveAndEnabledForIP ;############################################################################################## ; ; DESCRIPTION : This method is mainly used to check field active & enable. ; ; INPUT PARAMS : 1.$dialogTitle, 2: $TextName ;################################################################################################ Func checkFieldActiveAndEnabledForIP($dialogTitle , $TextName) ConsoleWrite("$TextName : " & $TextName & @CRLF) ConsoleWrite("$dialogTitle : " & $dialogTitle & @CRLF) ;To check whether the field is visible or not Local $isVisible = ControlCommand($dialogTitle, "", "[Name:"& $TextName & "]", "IsVisible","") ; To check whether the field is enable or not Local $isEnabled = ControlCommand($dialogTitle, "", "[Name:"& $TextName & "]", "IsEnabled","") ConsoleWrite("$isEnabled : " & $isEnabled &" $isVisible :" & $isVisible & @CRLF) write_Log("$isEnabled : " & $isEnabled ," $isVisible :" & $isVisible ) If $isVisible = 1 And $isEnabled = 1 Then return 1 Else return 0 EndIf EndFunc ;############################################################################################## ; METHOD NAME : checkButtonActiveAndEnabledForIP ;############################################################################################## ; ; DESCRIPTION : This method is mainly used to check button field active & enable. ; ; INPUT PARAMS : 1.$dialogTitle, 2: $controlId ;################################################################################################ Func checkButtonActiveAndEnabledForIP($dialogTitle , $controlId) ;To check whether the field is visible or not Local $isVisible = ControlCommand($dialogTitle, "", $controlId, "IsVisible","") ; To check whether the field is enable or not Local $isEnabled = ControlCommand($dialogTitle, "", $controlId, "IsEnabled","") ConsoleWrite("$isVisible :" & $isVisible & @CRLF) ConsoleWrite("$isEnabled :" & $isEnabled & @CRLF) If $isVisible = 1 And $isEnabled = 1 Then return 1 Else return 0 EndIf EndFunc ;############################################################################################## ; METHOD NAME : selectComboBoxForIP ;############################################################################################## ; ; DESCRIPTION : This method is mainly used to Select combobox item. ; ; INPUT PARAMS : 1.$dialogTitle, 2: $comboBoxName, 3: $option ;################################################################################################ Func selectComboBoxForIP($dialogTitle , $comboBoxName, $option) ;Local $val = $defaultComboBoxVal _GUICtrlComboBox_ResetContent ( "[Name:"& $comboBoxName & "]" ) ControlCommand($dialogTitle, "", "[Name:"& $comboBoxName & "]", "ShowDropDown","") Sleep(_CSVItem('AUTOIT_WAIT_TIME')) write_Log("Combo Option :", $option) ;$val = getComboBoxItem($dialogTitle,"[Name:"& $comboBoxName & "]", $option) ;Dim $getFinalOption $aResult = ControlGetHandle($dialogTitle, "", "[Name:"& $comboBoxName & "]") ; Get List of comboBox items Local $comboOptionMatch = False $aList = StringSplit(_GUICtrlComboBox_GetList($aResult), ",") For $x = 1 To $aList[0] ConsoleWrite("read inside finalResult : " & $aList[$x] & $option & @CRLF) Local $comboList = StringSplit($aList[$x], "|") For $i = 1 To UBound($comboList, $UBOUND_ROWS)-1 If $comboList[$i]= $option Then $comboOptionMatch = True Break(1) EndIf Next If Not $comboOptionMatch Then ConsoleWrite("Does not exist option : " & $option & @CRLF) $errorText = "Error:"& $option & " is incorrect option"; $errorType="FAIL"; Write_Log($errorType, $errorText) StopInstallationPkgTool($errorType, $errorText) Break(1) EndIf Next _GUICtrlComboBox_SelectString($aResult,$option) ;ControlSend ( $dialogTitle, "", "[Name:" & $comboBoxName &"]", "{DOWN "& $val &"}" ) Sleep(_CSVItem('AUTOIT_WAIT_TIME')) ConsoleWrite("Select Combo box "& $comboBoxName & @CRLF) write_Log("COMBOBOX NAME IS : ", $comboBoxName ) write_log("Check val:", _GUICtrlComboBox_GetCurSel($comboBoxName)) write_Log("OS version string:", $os) ;write_Log("OS Version : ", $osVersion) write_Log("isThisWin8OrAbove: ", $isThisWin8OrAbove) ;Local $isThisWin8OrAbove = ((StringRegExp($osVersion, '8',0)) OR (StringRegExp($osVersion, '10',0)) ) ? 1 : 0 If $isThisWin8OrAbove=1 Then write_Log("Its a win 8 or above machine. Lets click instead of enter.",$isThisWin8OrAbove) ControlFocus($dialogTitle, "", $comboBoxName) ControlClick($dialogTitle,"",$comboBoxName,"left") Else write_Log("Its a win 8 or above machine. Lets click instead of enter.",$isThisWin8OrAbove) ControlSend ( $dialogTitle, "", "[Name:" & $comboBoxName & "]", "{ENTER}") EndIf ;ControlSend ( $dialogTitle, "", "[Name:" & $comboBoxName & "]", "{ENTER}") Sleep(_CSVItem('AUTOIT_WAIT_TIME')) EndFunc ;############################################################################################## ; METHOD NAME : setEditBoxForIP ;############################################################################################## ; ; DESCRIPTION : This method is mainly used to Edit textbox item. ; ; INPUT PARAMS : 1.$dialogTitle, 2: $editBoxName, 3: $text ;################################################################################################ Func setEditBoxForIP($dialogTitle , $editBoxName, $text) ControlFocus($dialogTitle, "", "[Name:" & $editBoxName &"]") Sleep(_CSVItem('AUTOIT_WAIT_TIME')) ControlSetText($dialogTitle,"", "[Name:" & $editBoxName &"]", $text ) Sleep(_CSVItem('AUTOIT_WAIT_TIME')) EndFunc ;############################################################################################## ; METHOD NAME : clickEventForIPForPID ;############################################################################################## ; ; DESCRIPTION : This method is mainly used to Click event. ; ; INPUT PARAMS : 1.$dialogTitle, 2: $editBoxName, 3: $text ;################################################################################################ Func clickEventForIPForPID($dialogTitle , $editBoxName, $text) ; here text is click so we need to ControlFocus($dialogTitle, "", "[Name:" & $editBoxName &"]") Sleep($sleepTime) ControlClick($dialogTitle, "", "[Name:" & $text & "]") Sleep($sleepTime) write_Log("click Event:" , $text & @CRLF) EndFunc ;############################################################################################## ; METHOD NAME : clickEventForIP ;############################################################################################## ; ; DESCRIPTION : This method is mainly used to Click event. ; ; INPUT PARAMS : 1.$dialogTitle, 2: $editBoxName, 3: $text ;################################################################################################ Func clickEventForIP($dialogTitle , $editBoxName, $text) ControlFocus($dialogTitle, "", "[Name:" & $editBoxName &"]") Sleep(_CSVItem('AUTOIT_WAIT_TIME')) write_Log("Click " , $text & @CRLF) ;ControlClick($dialogTitle, "", "[Name:" & $text & "]") ControlClick($dialogTitle, "", "[Text:" & $text & "]") Sleep(_CSVItem('AUTOIT_WAIT_TIME')) write_Log("Enter text :" , $text & @CRLF) EndFunc ;############################################################################################## ; METHOD NAME : selectRadioButtonForIP ;############################################################################################## ; ; DESCRIPTION : This method is mainly used to Select radio button. ; ; INPUT PARAMS : 1.$dialogTitle, 2: $radioButtonName, 3: $radioBoxOption ;################################################################################################ Func selectRadioButtonForIP($dialogTitle , $radioButtonName, $radioBoxOption) ControlCommand($dialogTitle, "", "[Name:"& $radioButtonName & "]", $radioBoxOption,"") ConsoleWrite("Radio Control " & $radioButtonName & @CRLF) ;ControlSend ( $dialogTitle, "", "[Name:" & $radioButtonName &"]", $option ) ;Sleep(_CSVItem('AUTOIT_WAIT_TIME')) ControlSend ( $dialogTitle, "", "[Name:" & $radioButtonName & "]", "{ENTER}") Write_Log("", "IP radio button" & @CRLF) EndFunc ;############################################################################################## ; METHOD NAME : selectCheckBoxForIP ;############################################################################################## ; ; DESCRIPTION : This method is mainly used to Check/Uncheck Checkbox. ; ; INPUT PARAMS : 1.$dialogTitle, 2: $checkBoxName, 3: $checkBoxOption ;################################################################################################ Func selectCheckBoxForIP($dialogTitle , $checkBoxName, $checkBoxOption) Sleep(9000) ControlFocus($dialogTitle, "", "[Name:" & $checkBoxName &"]") Sleep(_CSVItem('AUTOIT_WAIT_TIME')) ConsoleWrite("Before Checkbox name : " & $checkBoxName & @CRLF) ConsoleWrite("Before $dialogTitle name : " & $dialogTitle & @CRLF) ConsoleWrite("Before Checkbox option : " & $checkBoxOption & @CRLF) ;$state = GUICtrlRead($checkBoxName) $state =GUICtrlGetState ( "[Name:"& $checkBoxName & "]" ) ;$state =ControlCommand($dialogTitle, "", "[Name:"& $checkBoxName & "]", "IsChecked","") ConsoleWrite("[Name:"& $checkBoxName & "]" & $state & @CRLF) ConsoleWrite("Checkbox value from GUI : " & $state & @CRLF) If (StringRegExp('Check',"(?i)"&$checkBoxOption) = 1 AND $state == 0) Or (StringRegExp('UnCheck',"(?i)"&$checkBoxOption) = 1 AND $state == 1) Then Write_Log("Checkbox option is " , $checkBoxOption ) ;ControlSend ( $dialogTitle, "", "[Name:" & $checkBoxName & "]", $checkBoxOption) ControlClick( $dialogTitle, "", "[Name:" & $checkBoxName & "]") ConsoleWrite("Checkbox option : " & $checkBoxOption & @CRLF) ElseIf (StringRegExp('Check',"(?i)"&$checkBoxOption) = 1 AND $state == 1) Or (StringRegExp('UnCheck',"(?i)"&$checkBoxOption) = 1 AND $state == 0) Then ConsoleWrite("Uncheck Checkbox option is " & $checkBoxOption & @CRLF) ;ControlSend ( $dialogTitle, "", "[Name:" & $checkBoxName & "]", "{SPACE}") ;ControlSend ( $dialogTitle, "", "[Name:" & $checkBoxName & "]", "UnCheck") ;ControlClick( $dialogTitle, "", "[Name:" & $checkBoxName & "]") ;if StringRegExp('core2updateCheckbox',"(?i)"&$checkBoxName) = 1 Then ; ControlClick( $dialogTitle, "", "[Name:" & $checkBoxName & "]") ;EndIf ConsoleWrite("Checkbox option under elseif unceck : " & $checkBoxOption & @CRLF) ConsoleWrite("No change are required because current state is desired state" & @CRLF) EndIf WinActive($dialogTitle) ;$Afterstate = GUICtrlRead($checkBoxName) ;$Afterstate =ControlCommand($dialogTitle, "", "[Name:"& $checkBoxName & "]", "IsChecked","") $Afterstate =GUICtrlGetState ( "[Name:"& $checkBoxName & "]" ) ConsoleWrite("After operation Checkbox value from GUI : " & $Afterstate & @CRLF) $aResult = ControlGetHandle($dialogTitle, "", "[Name:" & $checkBoxName & "]") ConsoleWrite("Checked box $aResult : "& $aResult & @CRLF) $checkState = ControlCommand($dialogTitle, $checkBoxName, "[Name:" & $checkBoxName & "]","IsChecked") ConsoleWrite("Checked box $aResult : "& $checkState & @CRLF) ConsoleWrite("Checked box state : "& IsChecked($checkState) & @CRLF) EndFunc Func IsChecked($control) ConsoleWrite("IsChecked state : "& GUICtrlRead($control) & @CRLF) Return BitAnd(GUICtrlRead($control),$GUI_CHECKED) = $GUI_CHECKED EndFunc #comments-start ;############################################################################################## ; METHOD NAME : getComboBoxItemForPID ;############################################################################################## ; ; DESCRIPTION : This method is mainly used to get a final combobox items no. ; ; INPUT PARAMS : 1.$dialogTitle, 2: $idCombo, 3: $option ;################################################################################################ Func getComboBoxItemForPID($dialogTitle, $idCombo, $option) Dim $getFinalOption $aResult = ControlGetHandle($dialogTitle, "", $idCombo) ; Get List of comboBox items $aList = _GUICtrlComboBox_SelectString($aResult,$option) ConsoleWrite("Indix of option selected in combo box :" & $aList & @CRLF) Return $aList EndFunc ;############################################################################################## ; METHOD NAME : getComboBoxItem ;############################################################################################## ; ; DESCRIPTION : This method is mainly used to get a final combobox items no. ; ; INPUT PARAMS : 1.$dialogTitle, 2: $idCombo, 3: $option ;################################################################################################ Func getComboBoxItem($dialogTitle, $idCombo, $option) Dim $getFinalOption $aResult = ControlGetHandle($dialogTitle, "", $idCombo) _GUICtrlComboBox_ResetContent($idCombo) ; Get List of comboBox items $aList = _GUICtrlComboBox_GetListArray($aResult) Write_Log("Combo Box rows are ", UBound($aList, $UBOUND_ROWS) &" having Title " &$dialogTitle) For $x = 1 To UBound($aList, $UBOUND_ROWS)-1 $option="(?i)"&$option If StringRegExp($aList[$x],$option) = 1 Then ; ConsoleWrite("List item at position : " & $aList[$x] & "option :" & $option& @CRLF) ConsoleWrite("value of x : "&$x& @CRLF) $getFinalOption = $x EndIf Next ConsoleWrite("List item at 0 position : " & $aList[0] & @CRLF) If StringRegExp($aList[1],"(?i)"&_CSVItem('TRANSPORT_TYPE')) Then $getFinalOption = $getFinalOption-1 EndIf ;If StringRegExp($aList[1],"(?i)"&_CSVItem('PID_UPDATE_FIRMWARE_VERSION')) Then ;$getFinalOption = $getFinalOption-2 ;EndIf ConsoleWrite("$$aList[1] : " & $aList[1] & " _CSVItem('TS_COMMAND') : " & _CSVItem('TS_COMMAND')& @CRLF) ConsoleWrite("$before getFinalOption : " & $getFinalOption & @CRLF) ;If $aList[$getFinalOption] = _CSVItem('TS_COMMAND') And $getFinalOption <> 1 Then ;$getFinalOption =1 ;ConsoleWrite("After $getFinalOption : " & $getFinalOption & @CRLF) ;EndIf ConsoleWrite("Checkbox option : " & $getFinalOption & @CRLF) Return $getFinalOption EndFunc #comments-end