grimmlock Posted December 28, 2012 Posted December 28, 2012 What I am trying to do is take the output from $Split which should be just test and display it in $Input2. However when I open this all I get in #Input2 is 0. #include <GUIConstantsEx.au3> #include <GUIConstants.au3> #Include <String.au3> GuiCreate("test", 400, 400) GuiSetState(@SW_SHOW) Local $Input1 = GUICtrlCreateList("test.test.test", 10, 10, 100, 20) Local $Split = StringTrimRight(GUICtrlRead($Input1), 12) Local $Input2 = GUICtrlCreateEdit(GUICtrlRead($Split), 10, 50, 100, 20) Sleep(30000) Thanks Grimm Thanks Grimm
Developers Jos Posted December 28, 2012 Developers Posted December 28, 2012 $Split isn't a control handle. so guess it should be: Local $Input1 = GUICtrlCreateList("test.test.test", 10, 10, 100, 20)\ Local $Split = StringTrimRight(GUICtrlRead($Input1), 12) Local $Input2 = GUICtrlCreateEdit($Split, 10, 50, 100, 20) SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past.
grimmlock Posted December 28, 2012 Author Posted December 28, 2012 Ok, I will change the $Split to something else, my next question is If I want to send the "output" of $Input3 ($Split) would the code be Send($Input3)? I have tried Send($Input3) and it does not send anything. Thanks Grimm Thanks Grimm
Developers Jos Posted December 28, 2012 Developers Posted December 28, 2012 Not sure I understand your question, but just have a try as test ... Post some code snippet when it doesn't work. SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past.
grimmlock Posted December 28, 2012 Author Posted December 28, 2012 I know why this is failing however I am not sure how to fix it. The reason it is failing is because in the txt file I am reading from each "line" is seperated by a | . Here is a simple gui I created that will allow you to see what I am running into. #include <GUIConstantsEx.au3> #include <GUIConstants.au3> #Include <String.au3> GuiCreate("test", 400, 400) GuiSetState(@SW_SHOW) $list1 = Fileread("c:\test.txt") Local $Combo1 = GUICtrlCreateCombo("", 10, 10, 100, 20) GUICtrlSetData(-1, "test") Local $Input1 = GUICtrlCreateList("", 10, 50, 100, 50) Local $Input3 = StringTrimRight(GUICtrlRead($Input1), 12) Local $button1 = GUICtrlCreateButton("Notepad", 200, 50, 100, 100) ;~ Local $Input2 = Send($Split, 10, 50, 100, 20) ;~ Local $Input1 = GUICtrlCreateList("", 150, 20 While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit Case $combo1 Switch GUICtrlRead($Combo1) Case "Branch Servers" GUICtrlSetData($Input1, "|" & $List1) EndSwitch Case $button1 Run("Notepad.exe") Sleep(1000) Send($Input3) Sleep(1000) EndSwitch WEnd In the test.txt file all I have is one line test.test1.test1|test1.test1.test1 Thanks Grimm Thanks Grimm
Developers Jos Posted December 28, 2012 Developers Posted December 28, 2012 (edited) You are not really making much sense yet with the posted snippet but tried something to see if that is what you are looking for: #include <GUIConstantsEx.au3> #include <GUIConstants.au3> #include <String.au3> GUICreate("test", 400, 400) GUISetState(@SW_SHOW) $list1text = FileRead("test.txt") Local $Combo1 = GUICtrlCreateCombo("", 10, 10, 100, 20) GUICtrlSetData(-1, "test") Local $list1 = GUICtrlCreateList("", 10, 50, 100, 50) GUICtrlSetData($list1,$list1text) Local $button1 = GUICtrlCreateButton("Notepad", 200, 50, 100, 100) ;~ Local $Input2 = Send($Split, 10, 50, 100, 20) ;~ Local $Input1 = GUICtrlCreateList("", 150, 20 While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit Case $button1 Run("Notepad.exe") Sleep(1000) Send(GUICtrlRead($list1)) Sleep(1000) EndSwitch WEnd Edited December 28, 2012 by Jos SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past.
Moderators Melba23 Posted December 28, 2012 Moderators Posted December 28, 2012 grimmlock, You really are going to have to give us more info when you post questions - at the moment it is very difficult to work out exactly what you are trying to do. Does this script act more like you want: expandcollapse popup#include <GUIConstantsEx.au3> #include <GUIConstants.au3> #include <String.au3> GUICreate("test", 400, 400) GUISetState(@SW_SHOW) $list1 = FileRead(@ScriptDir & "\test.txt") Local $Combo1 = GUICtrlCreateCombo("", 10, 10, 100, 20) GUICtrlSetData(-1, "test|Branch Servers") Local $Input1 = GUICtrlCreateList("", 10, 50, 100, 50) ;Local $Input3 = StringTrimRight(GUICtrlRead($Input1), 12) ; Here there is nothing in the control so this variable is always empty <<<<<<<<<<<<<<<<<<<<< Local $button1 = GUICtrlCreateButton("Notepad", 200, 50, 100, 100) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit Case $Combo1 Switch GUICtrlRead($Combo1) Case "Branch Servers" ConsoleWrite("Hit" & @CRLF) GUICtrlSetData($Input1, "|" & $list1) EndSwitch Case $button1 ; Here there is perhaps some thing in the control! <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ; But have you selected an item in the list? <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ; Because what does GUICtrlRead do for a List control? <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Local $Input3 = StringTrimRight(GUICtrlRead($Input1), 12) ; So check here <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< If $Input3 = "" Then MsgBox(0,"Error", "No selection") Else Run("Notepad.exe") Sleep(1000) Send($Input3) Sleep(1000) EndIf EndSwitch WEnd Well, does it? M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
grimmlock Posted December 28, 2012 Author Posted December 28, 2012 (edited) I tried your script but it still does not want to "send" the correct data. My apologizes if I am not making much sense. For the input I am using test.test1.test1|test1.test1.test1. The reason for this is because I have several remote locations that are only pingable by typing in the whole domain name (test.test1.test1). I can ping them just fine, however the next step is to open an app and remote into the PC's at the remote location using just the first part of their name. Test or Test1. That is why I wanted to do a split and remove all characters .test1.test1. Thanks Grimm Edited December 28, 2012 by grimmlock Thanks Grimm
grimmlock Posted December 28, 2012 Author Posted December 28, 2012 Thank you M23 you are the best that was exactly what I needed. Thanks Grimm Thanks Grimm
Moderators Melba23 Posted December 28, 2012 Moderators Posted December 28, 2012 grimmlock,Which is exactly what the script I posted does when I run it - I get either "test" or "test1" in the Notepad instance. Are you selecting an item in the list before pressing the button? M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
grimmlock Posted December 29, 2012 Author Posted December 29, 2012 (edited) I modified your script because I am going to merging this with another script I am working on. In the modified script it seems to work except for $Input4 which opens Notepad however sends all the data I selected in the Input box then waits 1 sec and adds the correct entry. So for instance when I select Branch Servers from the drop down, and select test.test1.test1 and press the button, Notepad opens then types out test.test1.test1 followed by a pause then types in correct response of test. It looks like this (test.test1.test1test) To answer your question...I am selecting an item in the list before pressing the button This is what I have: expandcollapse popup#include <GUIConstantsEx.au3> #include <GUIConstants.au3> #include <String.au3> GUICreate("test", 400, 400) GUISetState(@SW_SHOW) $list1 = FileRead("C:\test.txt") ; <<<<<< file contains test.test1.test1|test1.test1.test1 $list2 = FileRead("c:\test2.txt") ; <<<<<<<< file contains just test123 Local $Combo1 = GUICtrlCreateCombo("", 10, 10, 100, 20) GUICtrlSetData(-1, "test|Branch Servers") Local $Input1 = GUICtrlCreateList("", 10, 50, 100, 50) Local $button1 = GUICtrlCreateButton("Notepad", 200, 50, 100, 100) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit Case $Combo1 Switch GUICtrlRead($Combo1) Case "Branch Servers" ;~ ConsoleWrite("Hit" & @CRLF) GUICtrlSetData($Input1, "|" & $list1) Case "test" ;~ ConsoleWrite("Hit" & @CRLF) GUICtrlSetData($Input1, "|" & $list2) EndSwitch Case $button1 Local $Input3 = StringTrimRight(GUICtrlRead($Input1), 0) Local $Input4 = StringTrimRight(GUICtrlRead($Input1), 12) If $Input3 = "" Then MsgBox(0,"Error", "No selection") Else Run("Notepad.exe") Sleep(1000) Send($Input3) Sleep(1000) EndIf If $Input4 = "" Then MsgBox(0,"Error", "No selection") Else Run("Notepad.exe") Sleep(1000) Send($Input4) Sleep(1000) EndIf EndSwitch WEnd Thanks Grimm Edited December 29, 2012 by grimmlock Thanks Grimm
Moderators Melba23 Posted December 29, 2012 Moderators Posted December 29, 2012 grimmlock, when I select Branch Servers from the drop down, and select test.test1.test1 and press the button, Notepad opens then types out test.test1.test1 followed by a pause then types in correct response of test. It looks like this (test.test1.test1test)Which is exactly what you are telling the script to do: Case $button1 Local $Input3 = StringTrimRight(GUICtrlRead($Input1), 0) ; This will read "test.test1.test1" Local $Input4 = StringTrimRight(GUICtrlRead($Input1), 12) ; This will read "test" If $Input3 = "" Then ; Was something selected? MsgBox(0, "Error", "No selection") Else Run("Notepad.exe") Sleep(1000) Send($Input3) ; Send the contents "test.test1.test1" to Notepad <<<<<<<<<<<<<<<<<<<<< Sleep(1000) EndIf If $Input4 = "" Then ; But here you check again and then....... MsgBox(0, "Error", "No selection") Else Run("Notepad.exe") Sleep(1000) Send($Input4) ; Send "test" to Notepad <<<<<<<<<<<<<<<<<<<<<<<<<<<< Sleep(1000) EndIf I think you would be better served by rearranging the code like this: Case $button1 Local $Input3 = StringTrimRight(GUICtrlRead($Input1), 0) ; This will read "test.test1.test1" Local $Input4 = StringTrimRight($Input3, 12) ; This will read "test" - and why read the control again ;) If $Input3 = "" Then ; Was something selected? Check the first input to see if there was a selection MsgBox(0, "Error", "No selection") Else Run("Notepad.exe") Sleep(1000) Send($Input4) ; Send the contents of the second input "test" to Notepad Sleep(1000) EndIf It seems more logical to me but as I have mentioned many times before, unless you explain clearly what is you are trying to get as a result we are really just whistling int eh dark trying to get your code to work as you want. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
grimmlock Posted December 31, 2012 Author Posted December 31, 2012 Thank you again M23, however it did not work the way I wanted it. After coming back from a weekend break, I was able to put this together Case $button1 Local $Input3 = GUICtrlRead($Input1) Local $Input4 = StringTrimRight(GUICtrlRead($Input1), 12) If StringInStr(GuiCtrlRead($Input1), ".local") Then Run("Notepad.exe") Sleep(1000) Send($Input4) Sleep(1000) Else Run("Notepad.exe") Sleep(1000) Send($Input3) Sleep(1000) EndIf Thanks Grimm Thanks Grimm
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