Jump to content
RaiNote

Just A Problem don't know how to name it^^

Recommended Posts

Well Hello,

I currently a bit sad because i can't find anywhere in helpfiles and google away in autoit to check if a number between another number is the same as 4 variables which is checking if the main variable got the same princip of looking >.<.( I really can't explain it at all)

Case $Send2Box
            $ReadText2Box = GuictrlRead($Text2Box)
            _GUICtrlEdit_AppendText($Console, $ReadText2Box & @CRLF)
            If $ReadText2Box = '/ping ' & $ip1 & '.' & $ip2 & '.' & $ip3 & '.' & $ip4 Then
                $IP = StringRight('/ping ', 1)
                $Ping = Ping($IP)
                _GUICtrlEdit_AppendText($Console,'Ping is: ' & $Ping & 'ms')
                GUICtrlSetData($Text2Box,'')
            EndIf

Next try to explain ^-^ i want to check if the text in the inputbox($Text2Box which is read from $ReadText2Box) the same looking like a ip but with a '/ping ' before and i don't know how to make the variables to check this.. and getting after it checked that it is truly a IP to ping it and send it to $Console to display the ms

I hope i could explained it anyway to understand it(if i write more i am getting more confused)

Thanks to everyone who try's to help me :D


  • C++/AutoIt/OpenGL Easy Coder
  • I will be Kind to you and try to help you
  • till what you want isn't against the Forum
  • Rules~

 

Share this post


Link to post
Share on other sites

This looks like you are pinging the letter g which is what StringRight('/ping',1) will return.

$IP = StringRight('/ping ', 1)
                $Ping = Ping($IP)

I think you want to to ping:

$ip1 & '.' & $ip2 & '.' & $ip3 & '.' & $ip4

From what I can tell maybe the issue is that you are reading an IP address from the textbox that starts with "/ping".  If you want to remove that you could just trim it off from $ReadTextBox2.  StringTrimLeft is how you could chop off those characters. $IP=StringTrimLeft($ReadTextBox2,5).  That is all a guess based on what I think I read in your post.

Share this post


Link to post
Share on other sites

The StringRight call as you have it there just returns the rightmost character of "/ping ", which is a space.

Change

$IP = StringRight('/ping ', 1)

to

$IP = StringTrimLeft($ReadText2Box, 6)

It will trim 6 characters from the $RestText2Box, exactly the length of string "/ping ", and return the result, which should be your IP address.


Roses are FF0000, violets are 0000FF... All my base are belong to you.

Share this post


Link to post
Share on other sites

What's in your $ip1, $ip2...? Judging from your current code it looks like you are checking whether it is a specific IP-address, defined in your $ip1 etc.. If you mean you want to check if the thing after "/ping " ($IP) is a string in the format of "<0-255>.<0-255>.<0-255>.<0-255>", you can take multiple approaches. One is to write a function to split $IP into parts using "." as a delimiter, then checking whether you get 4 results, each being a number between 0 and 255. Like so:

ConsoleWrite(_isIpAddress("abc") & @CRLF)
ConsoleWrite(_isIpAddress("12.34.56.78.90") & @CRLF)
ConsoleWrite(_isIpAddress("999.999.999.999") & @CRLF)
ConsoleWrite(_isIpAddress("127.0.0.1") & @CRLF)

Func _isIpAddress($IP)

    $splitResult = StringSplit($IP, ".")

    If $splitResult[0] <> 4 Then Return False
    For $supposedNumber In $splitResult
        If $supposedNumber < 0 Or $supposedNumber > 255 Then Return False
    Next
    Return True
EndFunc   ;==>_isIpAddress

 


Roses are FF0000, violets are 0000FF... All my base are belong to you.

Share this post


Link to post
Share on other sites

Hello,

I got a problem with my Code. Only GUI code works out but when i use with all my Functions the Gui goes down to the endless >.<

Code:

;*****************************************
;CraTool.au3 by RaiNote
;Erstellt mit ISN AutoIt Studio v. 0.98 BETA
;*****************************************


;Includes
#include <GUIConstantsEx.au3>
#include <GuiEdit.au3>
#include <String.au3>
#include "Forms\CraTool.isf"
#include "Functions.au3" 
#include <Inet.au3>
#include <_UskinDLL.au3>
#include <_UskinLibrary.au3>
#include <Skins\Descent.au3>
;Includes

_Uskin_LoadDLL()
_USkin_Init(_Descent(True))

;Variablen


GUISetState(@SW_SHOW, $CraTool)

While 1
    
    $nMsg = GUIGetMsg()
    Switch $nMsg
        
        Case $GUI_EVENT_CLOSE
            Exit
            
        Case $Send2Box
            
            ;Some Main needs for Commands
            $ReadText2Box = GuictrlRead($Text2Box)
            $IP = StringTrimLeft($ReadText2Box, 6)
            $IsIP = _isIpAddress($IP)
            $IP2 = StringTrimLeft($ReadText2Box, 4)
            $IsDomain = _isIpAddress($IP)
            $CheckCom4Digits = StringLeft($ReadText2Box,5)
            $CheckCom2Digits = StringLeft($ReadText2Box,3)
            _GUICtrlEdit_AppendText($Console, $ReadText2Box & @CRLF)
            ;
            
            If $CheckCom4Digits = '/ping' Then
                
                If $IsIP = 1 Then
                $Ping = Ping($IP)
                _GUICtrlEdit_AppendText($Console,'Ping is: ' & $Ping & 'ms' & @CRLF)
                
                ElseIf $IsIP = 0 Then
                    $PingDom = Ping($IP)
                    
                    If $PingDom > 0 Then
                    _GUICtrlEdit_AppendText($Console,'Ping is: ' & $PingDom & 'ms' & @CRLF)
                    
                    Else
                    _GUICtrlEdit_AppendText($Console,$IP & " isn't a valid IP" & @CRLF)
                    EndIf
                    
                EndIf
                
            EndIf
            
            If $CheckCom2Digits = '/ip' Then
                
                If $IsDomain = 0 Then
                    $IpGet = TCPNameToIP($IP2)
                _GUICtrlEdit_AppendText($Console,'IP is: ' & $IpGet & @CRLF)
                    
                ElseIf $IsDomain = 1 Then
                    $DomainGet = _TCPIpToName($IP2)
                    _GUICtrlEdit_AppendText($Console,$IP2 & ' is already an IP' &  @CRLF)
                    _GUICtrlEdit_AppendText($Console,$DomainGet & @CRLF & '->Domain of ' & $IP2 & @CRLF)
                EndIf
                
            EndIf
            GUICtrlSetData($Text2Box,'')
        Case $LoupCom
            _GUICtrlEdit_AppendText($Console, 'IIIIIIIIIIIIIIIIIIIIIIIIIIIIII' & @CRLF & 'vvvvvvvvvvvvvvvvvvvvvvvvvvvvvv' & @CRLF & 'Command: Ping' & @CRLF & 'Usage-> /ping Ip or Domain' & @CRLF & 'Info-> It shows the time it takes to connect from your Computer to another.' & @CRLF)
            
    EndSwitch

WEnd

GUI:

#include-once

; -- Created with ISN Form Studio 2 for ISN AutoIt Studio -- ;
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Include <GuiButton.au3>
#include <EditConstants.au3>
#Include <GuiMenu.au3>

$CraTool = GUICreate("CraTool",618,386,-1,-1,-1,-1)
$MenuItem681 = GUICtrlCreateMenu("Plugins")
$PluginsEnableMenu = GUICtrlCreateMenuItem("Enable",$MenuItem681,-1,1)
$PluginsDisableMenu = GUICtrlCreateMenuItem("Disable",$MenuItem681,-1,1)
$Send2Box = GUICtrlCreateButton("Send",413,323,60,19,-1,-1)
$Console = GUICtrlCreateEdit("",413,0,198,303,2244,-1)
GUICtrlSetFont(-1,8,400,0,"Lucida Console")
GUICtrlSetColor(-1,"0x0000A0")
GUICtrlSetBkColor(-1,"0x00FF80")
$Text2Box = GUICtrlCreateInput("Text to Box",413,303,194,20,192,512)
$LoupCom = GUICtrlCreateButton("Lookup Commands",473,323,100,19,-1,-1)
GUISetState(@SW_SHOW,$CraTool)

Functions:

;Functions.au3

Func _isIpAddress($IP)

    $splitResult = StringSplit($IP, ".")

    If $splitResult[0] <> 4 Then Return False
    For $supposedNumber In $splitResult
        If $supposedNumber < 0 Or $supposedNumber > 255 Then Return False
    Next
    Return True
EndFunc   ;==>_isIpAddress

That's all i can provide as code but i really don't get where the problem is. Maybe it's my Laptop because before on my computer it worked fine everything. ^^

I hope someone could help me :3

Thanks to everyone ^-^

Edit: Wups wrong section just saw it right now sorry If someone could move would be nice^^

Edited by RaiNote
Wrong Section

  • C++/AutoIt/OpenGL Easy Coder
  • I will be Kind to you and try to help you
  • till what you want isn't against the Forum
  • Rules~

 

Share this post


Link to post
Share on other sites

Are you trying to look at a string and see if it is formatted as an IP address?  xxx.xxx.xxx.xxx?  If so, have a look at StringRegExp to test for a pattern.  If that is not what you are after maybe you could post in your native language as something may be getting lost in translation (or use Google translate to explain).

Share this post


Link to post
Share on other sites

complete Code and i know wrong section but i saw it to late e.e

????  Not really sure what that means.  Is this the same issue you posted here with code?: https://www.autoitscript.com/forum/topic/173874-gui-problem/

 

Share this post


Link to post
Share on other sites

@RaiNote, Threads are merged and hope you will stick to one single thread for the same question from here on.

Believe this is "strike two" today.

Jos


SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource        Forum Rules
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Share this post


Link to post
Share on other sites

@RaiNote:  you are posting snippets of your code - that would very hard (at least for me - maybe others have a better opinion) to test and figure out the problem.  If you don't want to post the entire code can you create a simple "reproducer" script that shows the exact issue with working code?

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By nacerbaaziz
      hello sirs,
      i have searched allot about an function that can  read the INI file as a  string
      i mean function to read the ini files from string and not from the file directly.
      i finally found an UDF that do what i want
      but unfortunately all the functions work,  but the function that i want it not working.
      this is the udf
      the function that  i need is _IniReadFromString
      this is the function

      Func _IniReadFromString($szInput, $szSection, $szKey, $Default) $szInput = StringStripCR($szInput) Local $aRegMl = StringRegExp($szInput, "\[" & __StringEscapeRegExp($szSection) & "\]\n+(?:[^\[].*?=.*\n)*" & __StringEscapeRegExp($szKey) & "=(.*)\n?(", 3) If @error Then Return SetError(1, 0, $Default) ; key not found Return $aRegMl[0] EndFunc;==>_IniReadFromString
      i hope that any one can help me
      thank you in advance
      iniex.au3
    • By careca
      This is another take on string triggers, triggers on specific strings.
      Able to simple text pasting,
      opening links (as long as there's a www. http:\\ or https:\\ at the beggining)
      and is able to open applications, if there is a parameter in the parameter field, it uses it.
      The user selects the modifier key, and then uses a combination of that key with a couple others to perform tasks like
      screenshot the active window, (modkey + prtscr), turn off the screen (modkey + pause / break),
      open clipboard string in registry (modkey + R), change system volume (modkey + arrouw up/dn).
      The following keys pressed at the same time prompt for shutdown: S+D+T
      The following keys pressed at the same time prompt for restart: S+R+T
      Middle mouse button click on titlebar minimizes to tray, or a left mouse button click in the icon in the tray also minimizes.
      Trigger is set off by space or enter, and timeouts after 3 seconds.
      Shows your external, lan, and gateway ip's, can refresh with right mouse click, and opens the default browser if the correspondent button is pressed.
      Able to change system volume by a set percentage, reading from the inputbox the number the user sets, if 0 or empty uses system default.
      I made this because the existing string trigger applications didn't do it for me for a number of reasons.
      I did this for me, but if someone finds it useful all the better.
    • By Jeep
      Here is an other UDF for string handling :
      Date handling
      _StringDateConvert:  convert a date from one format ("YMD", "MDY" or "DMY") to another.
      _StringIsDate:  checks if a date with a given format is valid
      String management
      _StringCount: count of occurrences that appear in a string
      _StringFormatBytesSize: formatting a dimension expressed in bytes (bytes) in MB, TB, ...)
      _StringIsEndingWith: check if a string end with some characters
      _StringIsStartingWith: check if a string start with some characters
      _StringJoinArray:  concatenate elements of an array to rebuild a string
      _StringPadLeft: filling a string with characters on the left
      _StringPadRight: fill a string with characters on the right
      _StringRemoveFrenchAccent: remove french accent
      _StringRemoveChars: deleting characters from a string
      _StringStrip: eliminate characters at the begin and/or at the  end of a string
      _StringTitleCaseFrench: capitalize the first letter of each word with elimination of french accents
      _StringWSClean: simple replacement of "White Spaces",  remove beginning and trailing spaces and multiple spaces removal
      Any comments, suggestions for improvement or constructive criticism are welcome.
      Below you will find the UDF and a demo program. 
       
       
      JPD_String.zip
    • By XinYoung
      Hello all! I hope everyone is enjoying their holiday festivities. 
      I'm working on a script that involves copying a string of text from an Excel workbook and searching for it in a particular website's search tool. If a result is found, it will do something. If not, it will do something else.
      So far, it can successfully execute the search -- and then it shows me the results in an array.
      Screenshot of the successful search:

      The search results in an array:

       
      Here's the code (sorry for all my comments):
      ;~ All the functions this app performs require the external files listed here. So, theyre "included". #include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <WinAPIFiles.au3> #include <Array.au3> #include <File.au3> #include <Excel.au3> #include <DateTimeConstants.au3> #include <MsgBoxConstants.au3> #include <WinAPIShellEx.au3> #include <Date.au3> #include <ComboConstants.au3> #include <Misc.au3> #include <WinAPIProc.au3> #include <WinAPISys.au3> #include <WinAPIConstants.au3> #include <Crypt.au3> #include <ColorConstants.au3> #include <guimenu.au3> #include <IE.au3> ;~ Kill all functions and close the app at anytime by pressing F4. HotKeySet("{F4}", "_Exit") ;~ Keep track whether or not a file is selected. When the program first opens, a file is currently not selected. Global $FileChosen = 0 ;~ The app must remember certain strings of text: ;~ 1. Login page Global $urlBBLogin = "website.com" ;~ 2. Credentials Global $bbUsername = "USER" Global $bbPassword = "PW" ;~ 3. Search page Global $urlBBCourseSearch = "website.com/search" ;~ When you launch the app, the UI gets built and is displayed to the user in the center of the screen. the "Function" buttons are disabled until a file is chosen. $MasterUI = GUICreate("Master Re-Creator", 469, 145, -1, -1) $Label1 = GUICtrlCreateLabel("Choose the Excel file", 8, 8, 103, 17) $Select = GUICtrlCreateButton("Select File", 16, 32, 75, 25) $FileName = GUICtrlCreateLabel("[No File Selected]", 104, 40, 88, 17) $Group1 = GUICtrlCreateGroup("Functions", 8, 72, 449, 65) $CheckCourse = GUICtrlCreateButton("Check Courses Exist", 24, 96, 123, 25) GUICtrlSetState(-1, $GUI_DISABLE) $DeleteCourse = GUICtrlCreateButton("Delete Courses", 168, 96, 123, 25) GUICtrlSetState(-1, $GUI_DISABLE) $CopyCourse = GUICtrlCreateButton("Copy Courses", 312, 96, 123, 25) GUICtrlSetState(-1, $GUI_DISABLE) GUICtrlCreateGroup("", -99, -99, 1, 1) GUISetState(@SW_SHOW) ;~ While the UI is open, it listens for triggers (in this case, button presses). While 1 $UI = GUIGetMsg() Select ;~ If the app is closed, the _Exit() function is performed (same function the F4 hotkey calls). Case $UI = $GUI_EVENT_CLOSE _Exit() ;~ The user has clicked the "Select File" button, the _LocateGetFileName() function is performed. Go there. Case $UI = $Select _LocateGetFileName() ;~ The user has clicked the "Check Courses Exist" button. Case $UI = $CheckCourse _CheckCourses() ;~ Other buttons are not ready EndSelect WEnd ;~ The user clicked the "Select File" button. This function will execute now. Func _LocateGetFileName() ;~ Prepare the app to take note of the details of a file. Local $sDrive = "", $sDir = "", $sFileName = "", $sExtension = "" ;~ Open a File Explorer to allow the user to select a file. Only Excel files are allowed to be chosen. Global $ChosenFileName = FileOpenDialog("Locate File", @DesktopDir, "Excel Files (*.xlsx)|Excel Macro Files (*.xlsm)", BitOR(1, 2), "") If @error Then Return 0 EndIf ;~ When an Excel file is selected, remember of the files location (path), file name, and file extension. $aPathSplit = _PathSplit($ChosenFileName, $sDrive, $sDir, $sFileName, $sExtension) ;~ Show me what file I selected in a Message Box. MsgBox(0, "Selected File", $sFileName) ;~ Display the chosen file name in the UI label (previously [No File Selected]) and make it green. GUICtrlSetData($FileName, "") $FileName = GUICtrlCreateLabel($sFileName, 104, 40) $FileName = GUICtrlSetColor($FileName, 0x32CD32) ;~ A file is now selected. The "Function" buttons are now enabled. Global $FileChosen = 1 GUICtrlSetState($CheckCourse, $GUI_ENABLE) GUICtrlSetState($DeleteCourse, $GUI_ENABLE) GUICtrlSetState($CopyCourse, $GUI_ENABLE) EndFunc ;==>_LocateGetFileName ;~ The user clicked the "Check Courses" button. This function will execute now. Func _CheckCourses() ;~ Disable the "Function" buttons again to prevent multiple processes. GUICtrlSetState($CheckCourse, $GUI_DISABLE) GUICtrlSetState($DeleteCourse, $GUI_DISABLE) GUICtrlSetState($CopyCourse, $GUI_DISABLE) ;~ Open a IE window and navigate to the login page. Global $oIE = _IECreate($urlBBLogin) ;~ Recognize the form on this page (login input boxes). Local $oForm = _IEFormGetObjByName($oIE, "login") Local $oTextLogin = _IEFormElementGetObjByName($oForm, "user_id") Local $oTextPass = _IEFormElementGetObjByName($oForm, "password") ;~ Enter the Automation user credentials into the form. _IEFormElementSetValue($oTextLogin, $bbUsername) _IEFormElementSetValue($oTextPass, $bbPassword) ;~ Click the Login button. _IEFormSubmit($oForm) ;~ Now that were logged in, navigate to the course search page. _IENavigate($oIE, $urlBBCourseSearch) ;~ Change the search criteria to "Course ID" _bbCourseSearchCategoryChange("Course ID") ;~ Open the selected Excel file Local $oAppl = _Excel_Open() Local $oWorkbook = _Excel_BookOpen($oAppl, $ChosenFileName, Default, Default, True) ;~ Copy just whats in cell A1 (for now) _Excel_RangeCopyPaste($oWorkbook.Worksheets(1), "A1") Global $WhatsCopied = ClipGet() ;~ Paste whats copied into the search text box and click submit Local $oForm = _IEGetObjByName($oIE, "courseManagerFormSearch") Local $oSearchString = _IEFormElementGetObjByName($oForm, "courseInfoSearchText") _IEFormElementSetValue($oSearchString, $WhatsCopied) _IEFormSubmit($oForm) ;~ Lets see what we got from the search Local $oBBTable = _IETableGetCollection($oIE, 2) Local $aBBTableData = _IETableWriteToArray($oBBTable) _ArrayDisplay($aBBTableData) EndFunc ;==>_CheckCourses ;~ This function allows changing the search criteria. Func _bbCourseSearchCategoryChange($sCategoryToSearch) Local $aSearchCategory[6] = ["Course ID", "Course Name", "Description", "Instructor", "Data Source Key", "Term"] Local $oForm = _IEGetObjByName($oIE, "courseManagerFormSearch") Local $oSearchCategory = _IEGetObjByName($oForm, "courseInfoSearchKeyString") _IEAction($oSearchCategory, "focus") _IEFormElementOptionSelect($oSearchCategory, $aSearchCategory[$sCategoryToSearch], 1, "byText") EndFunc ;==>_bbCourseSearchCategoryChange ;~ All exit commands, including F4, calls this function Func _Exit() Exit EndFunc ;==>_Exit  
      My main question is: How do I create an If... Then based on what is found in the search results? I need additional tasks to run if Col 1, Row 2 in the array contains the exact string I searched for. (Am I going about this the right way?)
      My next question (I might make a new thread for): How do I make the whole thing loop, as in, copy the next cell in the Excel sheet and do the whole thing over again until there's no more? I understand that a For/Next loop thingy would be used. I just don't know how. Loops are really confusing to me.
      Thank you all for your guidance and have a happy new year!
    • By nooneclose
      I need help turning this string "20180913221626" into a formatted time string.
      I need to go from this: 20180913221626
      to this: 09/13/2018 10:16 PM
      I do not always know what the date will be so I can not just use a variable I need to actually convert/format. 
      I did see an older post in the forms that was basically the same question only the other guy did not post the working code and I can not figure out how to use _AD_GetObjectProperties properly to get what I want. 
      As always any help would be appreciated. 
      Here is the code I use to find the date, but it always gives me the unformatted version. 
      ;retrieve the items object $oItem = $oOutlook.Session.GetItemFromID($aItems[1][0], Default) $oItem.GetInspector $eSentOn = $oItem.SentOn ; When was the email sent? MsgBox("", "Sent On of the email", $eSentOn) ;******************************************************************************* ; Formats the date and time from the email ;******************************************************************************* ;Local $fDatenTime = _DateTimeFormat($eSentOn, 1) ;MsgBox("", "Formatted email time", $fDatenTime) $aProperties = _AD_GetObjectProperties($eSentOn) _ArrayDisplay($aProperties, "Did the conversion work?")  
×
×
  • Create New...