LisHawj Posted April 19, 2016 Share Posted April 19, 2016 Hi everyone, I wrote the script below to map different network resources to drive letter Z (depending on the radio button selection from main script). While it seems to work I don't believe it is the best practice or scripting logic. I have 6 network resources that our users can map and can access only one at any given time (per policy). The user is presented with 6 radio button respective of the network resource to map to drive Z. Please review my script below and provide additional help, suggestions and feedbacks. I am hoping to become more proficient as I continue to write basic tasks scripts with AutoIT. I know I have much more to learn, and I respect your time in reviewing the script. Thank you in advance for your time and consideration. expandcollapse popupFunc MapESD() $sMap = "Z:" ;Checks to see if Z: is currently map, if Yes, then disconnect the current Z: drive mapping If FileExists($sMap) Then DriveMapDel($sMap) EndIf ;Check to see which server is selected from options available to be utilize for new Z: drive mapping $Serv1 = GUICtrlRead($Radio7) $Serv2 = GUICtrlRead($Radio8) $Serv3 = GUICtrlRead($Radio9) $Serv4 = GUICtrlRead($Radio10) $Serv5 = GUICtrlRead($Radio11) $Serv6 = GUICtrlRead($Radio12) If $Serv1 = $GUI_CHECKED Then DriveMapAdd($sMap, "\\domain.com\folder", "domain\" & $Username & $Password) ElseIf $Serv2 = $GUI_CHECKED Then DriveMapAdd($sMap, "\\domain.com\folder", "domain\" & $Username & $Password) Else If $Serv3 = $GUI_CHECKED Then DriveMapAdd($sMap, "\\domain.com\folder", "domain\" & $Username & $Password) EndIf EndIf If $Serv4 = $GUI_CHECKED Then DriveMapAdd($sMap, "\\domain.com\folder", "domain\" & $Username & $Password) ElseIf $Serv5 = $GUI_CHECKED Then DriveMapAdd($sMap, "\\domain.com\folder", "domain\" & $Username & $Password) Else If $Serv6 = $GUI_CHECKED Then DriveMapAdd($sMap, "\\domain.com\folder", "domain\" & $Username & $Password) EndIf EndIf $Get_Map = DriveMapGet("Z:") $Verify_ESD = "Z:\ESD" If FileExists($Verify_ESD) Then $Terminal_Data = GUICtrlRead($Terminal) & @CRLF $Header1 = ("Result for network drive mapping:") GUICtrlSetData($Terminal, $Terminal_Data & $Header1 & @CRLF & $Get_Map & @CRLF) MsgBox(0, "", "Z:\ drive is connected successfully to: " & $Get_Map) Else $Terminal_Data = GUICtrlRead($Terminal) & @CRLF $Header1 = ("Result for network drive mapping:") GUICtrlSetData($Terminal, $Terminal_Data & $Header1 & @CRLF & $Get_Map & @CRLF) $Button_Clicked = MsgBox(6, "", "The network drive Z:\ is not found or is unreachable. Please verify network connectivity and click TRY AGAIN, or click CONTINUE to proceed without mapping the Z:\ drive.") If $Button_Clicked = 2 Then MsgBox(0, "", "You clicked on CANCEL"); debug msgbox Exit ElseIf $Button_Clicked = 10 Then MsgBox(0, "", "You clicked Try Again"); debug msgbox Call("") Else MsgBox(0, "", "You clicked CONTINUE"); debug msgbox Call("") EndIf EndIf EndFunc ;==>MapESD Link to comment Share on other sites More sharing options...
AutoBert Posted April 20, 2016 Share Posted April 20, 2016 (edited) I think using a ComboBox is better. Something similar to: expandcollapse popup#cs ----------------------------------------------------------------------------------------------------------- AutoIt Version: 3.3.6.1 Author: AutoBert: http://autoit.de/index.php?page=Thread&postID=164341#post164341 Skriptbeispiel für den Umgang mit INI-Files und ComboBox #ce ----------------------------------------------------------------------------------------------------------- #include <GUIConstantsEx.au3> #Include <GuiComboBox.au3> #include <StaticConstants.au3> Const $sElect = "bitte eine URL auswählen" Const $sAppIni=@AppDataDir&"\URL.INI" Global $URL If Not FileExists($sAppIni) Then $sData = "AutoIt=http://autoit.de" & @LF $sData &= "Buch=http://autoit.de/index.php?page=Thread&postID=92818#post92818" & @LF $sData &= "richtig Posten=http://autoit.de/index.php?page=Thread&threadID=4424" & @LF $sData &= "Tutorial=http://wiki.autoit.de/wiki/index.php/Tutorial" & @LF $sData &= "Skriptfehler finden=http://autoit.de/index.php?page=Thread&threadID=13785" & @LF $sData &= "Hilfe=http://translation.autoit.de/autoitinfo/hilfedateien/AutoIt-Hilfe-Deutsch-3.3.6.1-Stand-09_05_10.zip" & @LF $sData &= "MiniUrl-Manger=http://autoit.de/index.php?page=Thread&postID=164341#post164341" & @LF IniWriteSection($sAppIni, "URLs", $sData) EndIf $hGui = GUICreate("MiniUrl-Manager", 300, 90, 302, 218) $hcboProg = GUICtrlCreateCombo("", 8, 8, 200, 25) $hbtnAdd = GUICtrlCreateButton("&Hinzufügen", 213, 8,80) $hbtnDel = GUICtrlCreateButton("&Löschen", 213, 35,80) $hlblURL = GUICtrlCreateLabel("", 8, 70, 290,25) $hbtnOpen = GUICtrlCreateButton("&Öffnen", 8, 35,200) GUICtrlSetState($hbtnOpen, $GUI_DISABLE) GUICtrlCreateGraphic(0,65,300,2,$SS_ETCHEDHORZ ) read_INI() GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $hbtnAdd $write1 = InputBox("URL", "Bitte eine gültige URL eingeben") If $write1 <> "" Then $write2 = InputBox("URL verwalten unter", "Bitte Kurzbegriff eingeben") If $write2 <> "" Then IniWrite($sAppIni, "URLs", $write2, $write1) GUICtrlSetData($hcboProg, $write2, $write2) EndIf show_Selection() Case $hbtnDel $sDel = GUICtrlRead($hcboProg) IniDelete($sAppIni, "URLs", $sDel) GUICtrlSetData($hcboProg,"") read_INI() Case $hcboProg show_Selection() Case $hbtnOpen ShellExecute($URL) ;ConsoleWrite($URL & @CRLF) EndSwitch WEnd Func read_INI() $list1 = IniReadSection($sAppIni, "URLs") ConsoleWrite($list1 & @CRLF) if IsArray($list1) Then For $i = 1 To $list1[0][0] GUICtrlSetData($hcboProg, $list1[$i][0]) Next EndIf _GUICtrlComboBox_InsertString ($hcboProg,$sElect,0) _GUICtrlComboBox_SetCurSel($hcboProg,0) EndFunc ;==>read_INI Func show_Selection() If GUICtrlRead($hcboProg) = $sElect Then GUICtrlSetState($hbtnOpen, $GUI_DISABLE) GUICtrlSetData($hlblURL, "") Else GUICtrlSetState($hbtnOpen, $GUI_ENABLE) $Prog = GUICtrlRead($hcboProg) ConsoleWrite("ausgewählt: " & $Prog & @CRLF) $URL = IniRead($sAppIni, "URLs", $Prog, "") GUICtrlSetData($hlblURL, $URL) EndIf EndFunc ;==>show_Selection would be the better solution. Edited April 20, 2016 by AutoBert LisHawj 1 Link to comment Share on other sites More sharing options...
LisHawj Posted April 20, 2016 Author Share Posted April 20, 2016 Thanks, your example is a cleaner and nicer execution for choices and/or selections. I am still very new to AutoIT and don't fully comprehend the usage of the combo box yet. I reviewed your example and I don't believe I have enough scripting knowledge to use it effectively. Nonetheless, I am going to read up some more on the combo box and see where it takes me. I welcome any additional inputs, feedbacks, and guidance. Thanks! 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