anub13

Combo Box Read Value Bugging

8 posts in this topic

Hi,

I am having difficulties wondering why my code bugging like this,
the symptom : I have a form with combo box, and details in bottom of the app, when user choose another option the details changes immediately but when I go to details, it goes up and down endlessly

here is the code

 

Global $cChkPatrol, $YES= "YES", $NO = "NO"

if GUICtrlRead($combo1) = "YES" Then
    $cChkPatrol = $YES
Else
    $cChkPatrol = $NO
EndIf

func StartForm()

    GUICtrlSetData($txtInfo,"ADDITIONAL INFORMATION THAT WILL BE SENT WITH THE MESSAGE:" & @CRLF & asdfgSystemInfo())
    GUISetState(@SW_SHOW)
    AdlibRegister("_CheckPatrol")
    While 1
        $nMsg = GUIGetMsg()
        Select
            case $nMsg = $txtEmailAddress
                GUICtrlSetData($txtInfo,"ADDITIONAL INFORMATION THAT WILL BE SENT WITH THE MESSAGE:" & @CRLF & asdfgSystemInfo())
            case $nMsg = $txtPhone
                GUICtrlSetData($txtInfo,"ADDITIONAL INFORMATION THAT WILL BE SENT WITH THE MESSAGE:" & @CRLF & asdfgSystemInfo())

            case $nMsg = $txtFullName
                GUICtrlSetData($txtInfo,"ADDITIONAL INFORMATION THAT WILL BE SENT WITH THE MESSAGE:" & @CRLF & asdfgSystemInfo())

            case $nMsg = $cChkPatrol
                GUICtrlSetData($txtInfo,"ADDITIONAL INFORMATION THAT WILL BE SENT WITH THE MESSAGE:" & @CRLF & asdfgSystemInfo())
            case $nMsg = $cmdScreenShot
                $gScreenShotFile =  SaveScreenShot()

            case $nMsg = $cmdSubmit
                if ValidateForm() then
                    if asdfgSubmit() Then
                        UpdateStatus("Your request has been sent successfully")
                        MsgBox(0,"Help Requested","Your request has been sent successfully")
                        ExitLoop
                    Else

                        MsgBox(0,"Help Failed","Something is wrong you request was not sent, please try again")

                    Endif
                endIf
            case $nMsg = $cmdAttach
                $gAttachFile = AttachFile()

            Case $nMsg = $GUI_EVENT_CLOSE
                ExitLoop
        EndSelect
    WEnd
    AdlibUnRegister("_CheckPatrol")
EndFunc

func asdfgSystemInfo()

    dim $asdfgInfo
    $asdfgInfo = ""  & @CRLF

    if $isAdminVersion=1 then
        $asdfgInfo = $asdfgInfo & @CRLF & " Ticket Tags:" & @CRLF
        $asdfgInfo = $asdfgInfo & "~#userphone='" & GUICtrlRead($txtPhone) & "'" & @CRLF
        $asdfgInfo = $asdfgInfo & "~#submitterphone='" & GUICtrlRead($txtPhone) & "'" & @CRLF
        dim $MachineID
        $MachineID = KaseyaIni($gKIniFile,"SERVER COMMUNICATIONS","User_Name","NotFound")
        $asdfgInfo = $asdfgInfo & "~#machineid='" & $MachineID & "'" & @CRLF

        dim $OrgGroups
        $OrgGroups= StringSplit($MachineID,".")

        dim $OrgGroupIndex
        $OrgGroupIndex = UBound($OrgGroups) - 1
        $asdfgInfo = $asdfgInfo & "~#organization='" & $OrgGroups[$OrgGroupIndex] & "'" & @CRLF

        dim $EmailUser
        $EmailUser = GUICtrlRead($txtEmailAddress)
        $EmailUser = StringMid($EmailUser,1,StringInStr($EmailUser,"@") - 1)  & @CRLF  & @CRLF


        $asdfgInfo = $asdfgInfo & "~#username='" & $EmailUser & "'" & @CRLF

        ;dim
        ;Call("isChecked")
        ;$categ = GUICtrlRead($chkPatrol)
        ;$asdfgInfo = $asdfgInfo & "-#category='" & $categ & "'" & @CRLF

    EndIf

    $asdfgInfo = $asdfgInfo & "Email:" & GUICtrlRead($txtEmailAddress) & @CRLF & @CRLF
    $asdfgInfo = $asdfgInfo & "Full Name:" & GUICtrlRead($txtFullName) & @CRLF & @CRLF
    $asdfgInfo = $asdfgInfo & "Phone:" & GUICtrlRead($txtPhone) & @CRLF & @CRLF


    $asdfgInfo = $asdfgInfo & "DateTime:" & _Now() & @CRLF
    $asdfgInfo = $asdfgInfo & "MachineName:" & @ComputerName & @CRLF
    $asdfgInfo = $asdfgInfo & "UserName:" & @UserName & @CRLF
    $asdfgInfo = $asdfgInfo & "OS:" & @OSType & " " & @OSVersion & @CRLF
    $asdfgInfo = $asdfgInfo & "LogonDomain:" & @OSType & " " & @LogonDomain & @CRLF
    $asdfgInfo = $asdfgInfo & "LogonDNSDomain:" & @OSType & " " & @LogonDNSDomain & @CRLF
    $asdfgInfo = $asdfgInfo & "OS:" & @OSType & " " & @OSVersion & @CRLF

    $asdfgInfo = $asdfgInfo & "IP Address:" & @IPAddress1  & @CRLF
    $asdfgInfo = $asdfgInfo & "Public IP Address:" & GetPublicIP() &@CRLF
    ;$asdfgInfo = $asdfgInfo & "Public IP Address:" & _GetIP () &@CRLF

    $asdfgInfo = $asdfgInfo & "OS:" & NetAdapterInfo()

    $asdfgInfo = $asdfgInfo & "KaseyaInstalled:" & KaseyaInstalled() & @CRLF
    $asdfgInfo = $asdfgInfo & "KaseyaRunning:" & KaseyaRunning() & @CRLF
    $asdfgInfo = $asdfgInfo & "KaseyaAgentGUID:" & KaseyaIni($gKIniFile,"SERVER COMMUNICATIONS","Agent_Guid","NotFound") & @CRLF
    $asdfgInfo = $asdfgInfo & "asdfgPaid:" & isasdfgIDPaid() & @CRLF

    if $isAdminVersion=0 then
        $asdfgInfo = $asdfgInfo & @CRLF & " Ticket Tags:" & @CRLF
        $asdfgInfo = $asdfgInfo & "~userphone='" & GUICtrlRead($txtPhone) & "'" & @CRLF
        $asdfgInfo = $asdfgInfo & "~submitterphone='" & GUICtrlRead($txtPhone) & "'" & @CRLF

        dim $MachineID
        $MachineID = KaseyaIni($gKIniFile,"SERVER COMMUNICATIONS","User_Name","NotFound")
        $asdfgInfo = $asdfgInfo & "~machineid='" & $MachineID & "'" & @CRLF

        dim $OrgGroups
        $OrgGroups= StringSplit($MachineID,".")

        dim $OrgGroupIndex
        $OrgGroupIndex = UBound($OrgGroups) - 1
        $asdfgInfo = $asdfgInfo & "~organization='" & $OrgGroups[$OrgGroupIndex] & "'" & @CRLF

        dim $EmailUser
        $EmailUser = GUICtrlRead($txtEmailAddress)
        $EmailUser = StringMid($EmailUser,1,StringInStr($EmailUser,"@") - 1)

        $asdfgInfo = $asdfgInfo & "~username='" & $EmailUser & "'" & @CRLF

        dim $categ
        $categ = $chkPatrol
        $asdfgInfo = $asdfgInfo & "~category='" & $categ & "'" & @CRLF

        dim $track
        $track = $cChkPatrol
        $asdfgInfo = $asdfgInfo & "~test='" & $cChkPatrol & "'" & @CRLF

        $asdfgInfo = $asdfgInfo & "~afterhour='" & $AfterHour & "'" & @CRLF
    endif

    Return $asdfgInfo

endFunc

 

Yes it was same app as previous post in the forum I asked, I also having experience this happening before but I fail to understand the reason why this is happening. Thanks in advance.

ButtonSupport - Copy.au3

Share this post


Link to post
Share on other sites
35 minutes ago, anub13 said:

when user choose another option the details changes immediately but when I go to details, it goes up and down endlessly

What exactly do you mean by this? You're only reading the combobox in one place, and then you never read from it again.


If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Share this post


Link to post
Share on other sites

#3 ·  Posted (edited)

6 minutes ago, BrewManNH said:

What exactly do you mean by this? You're only reading the combobox in one place, and then you never read from it again.

please find attached files for the img

when I change the option to YES, ADDITIONAL INFORMATION ........

when the cursor goes to that area, and scroll it down, always back to up I can't go down at all.

Capture.PNG

Edited by anub13
typos

Share this post


Link to post
Share on other sites

There's no way for me to run this because of the internet connection test you have in it, and I'm not going to go through the effort to make it runnable.

 


If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Share this post


Link to post
Share on other sites
5 minutes ago, BrewManNH said:

There's no way for me to run this because of the internet connection test you have in it, and I'm not going to go through the effort to make it runnable.

 

Here I edited the code, now should be running without internet connection.

ButtonSupport - Copy.au3

Share this post


Link to post
Share on other sites

I still had to heavily modify it to get it to run.

The problem is caused in 2 places.

  1. Your function _CheckPatrol is constantly reloading the information in the edit box, for no good reason that I can see.
  2. You have a line in your GUI message handler looking at the variable $cChkPatrol, this isn't a control on your GUI, it's just a variable that contains Yes or No, and it's getting processed every time the loop runs. Delete this section, as it's unnecessary as it's written.
    case $nMsg = $cChkPatrol
        GUICtrlSetData($txtInfo,"ADDITIONAL INFORMATION THAT WILL BE SENT WITH THE MESSAGE:" & @CRLF & asdfgSystemInfo())

    You might want to consider moving the GUICtrlSetData inside your If statements in _CheckPatrol and see if that eliminates some of the excessive rewriting of the edit box.


If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Share this post


Link to post
Share on other sites
17 minutes ago, BrewManNH said:

I still had to heavily modify it to get it to run.

The problem is caused in 2 places.

  1. Your function _CheckPatrol is constantly reloading the information in the edit box, for no good reason that I can see.
  2. You have a line in your GUI message handler looking at the variable $cChkPatrol, this isn't a control on your GUI, it's just a variable that contains Yes or No, and it's getting processed every time the loop runs. Delete this section, as it's unnecessary as it's written.
    case $nMsg = $cChkPatrol
        GUICtrlSetData($txtInfo,"ADDITIONAL INFORMATION THAT WILL BE SENT WITH THE MESSAGE:" & @CRLF & asdfgSystemInfo())

    You might want to consider moving the GUICtrlSetData inside your If statements in _CheckPatrol and see if that eliminates some of the excessive rewriting of the edit box.

sorry about it, I thought I ran it well in here

OK will try as you said and be right back.

Share this post


Link to post
Share on other sites

#8 ·  Posted (edited)

@BrewManNH

Still need some time... at the moment still figuring out to solve it.:D

Thanks for responding.

EDIT:

Sorry for double post.

EDIT 2: 

@BrewManNH

just complete the code, put simple code 

Func checkCombo()
    if GUICtrlRead($combo1) = "YES" Then
        $chkTrack = $YES
    Else
        $chkTrack = $NO
    EndIf
EndFunc

and called it on here

case $nMsg = $combo1
checkCombo()
GUICtrlSetData($txtInfo,"ADDITIONAL INFORMATION THAT WILL BE SENT WITH THE MESSAGE:" & @CRLF & TCDSystemInfo())

:) thanks for your help

Edited by anub13
typos

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

    • Valnurat
      By Valnurat
      How can I get combobox value by using  the ENTER key?
    • vyperhand
      By vyperhand
      I'm struggling to launch a VBS file via autoit using RunWait.  Due to the nature of the deployment tool I am using for said script, I only know that the .vbs files will be in the same directory as my AutoIt-generated .exe, but not what that path will be.  The path will look something like this:
      c:\programdata\vendor\lots\of\folders\randomnumber
      This is generated during deployment and I have no way of predicting the path - therefore, I am not sure how to call back to "same directory" in order to successfully launch the .vbs.
      This line is as close as I have gotten - this fires off the cmd window, but it closes immediately with out information, and the .vbs is not launched.
      RunWait (@ComSpec & " /c" & 'cscript.exe WORKPLEASE.vbs ALL /Q /NoCancel') I thought /c might be the problem, but leaving out the /c element causes me not to even see the momentary CMD window flash by.  Any help will be greatly appreciated, and thanks in advance.
    • Valnurat
      By Valnurat
      I have a ComboBox and I want, when I start writting in it, that it will show me what is the first in the list.
      Like, is I start writting:
      "pe" it  should show me "peter" if that is the first in the list.
      How can I do that?
       
      While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE, $idClos ExitLoop Case $idComboBox $sComboRead = GUICtrlRead($idComboBox) Local $iIdx = _ArraySearch($aResult,$sComboRead,0,0,0,0,1,1) Local $aComputerOwner = _AD_GetObjectsInOU("OU=al,DC=AD,DC=AL,DC=ORG","(&(objectclass=computer)(managedby=" & $aResult[$iIdx][0] & "))",Default,"cn") _ArrayDelete($aComputerOwner,0) _GUICtrlListView_SetItemCount($idMylist,UBound($aComputerOwner)) If IsArray($aComputerOwner) Then For $i = 0 To UBound($aComputerOwner) - 1 GUICtrlCreateListViewItem($aComputerOwner[$i], $idMylist) Next Else GUICtrlSetData($idMylist, "No computer|") EndIf EndSwitch WEnd  
    • Valnurat
      By Valnurat
      Hi.
      I'm trying to add an array to my gui listview, but it fails with
      "C:\Program Files (x86)\AutoIt3\Include\GuiListView.au3" (473) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.: DllStructSetData($tBuffer, "Text", $aItems[$iI][0]) DllStructSetData($tBuffer, "Text", ^ ERROR My code is:
      #cs ---------------------------------------------------------------------------- AutoIt Version: 3.3.14.2 Author: myName Script Function: Template AutoIt script. #ce ---------------------------------------------------------------------------- ; Script Start - Add your code below here #include <WindowsConstants.au3> #include <ComboConstants.au3> #include <GuiComboBox.au3> #include <GUIConstantsEx.au3> #include <GuiListView.au3> #include <MsgBoxConstants.au3> #Include <AD.au3> #include <Array.au3> Opt('MustDeclareVars', 1) Global $aResult[0][2] Local $aNames[4] = ["DKSO","DKKO","SELU","SEES"] Local Const $iWidth = 300, $iHeight = 250, $iW = 85, $iH = 25 Local $hGUI = GUICreate("Find Computer Owner", $iWidth, $iHeight) ; Create a combobox control. Local $idComboBox = GUICtrlCreateCombo("", 2, 2, 296, 20, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL, $WS_VSCROLL, $CBS_SORT)) ;$WS_VSCROLL Local $idMylist = GUICtrlCreateListView("", 2, 114, 296, 100) Local $idClos = GUICtrlCreateButton("Close", ($iWidth - $iW) / 2, ($iHeight - $iH) - 7 , $iW, $iH) _AD_Open() Local $sFill = "" For $i = 0 to UBound($aNames) -1 Local $aUserInfo = _AD_GetObjectsInOU("OU=Al,DC=ad,DC=al,DC=org","(&(objectCategory=Person)(objectclass=user)(sAMAccountName=" & $aNames[$i] & "*))","","distinguishedName,cn") if @error Then MsgBox(0,@error,@extended) Exit EndIf For $x = $aUserInfo[0][0] To 1 Step -1 If $aUserInfo[$x][0] = "" Or StringInStr($aUserInfo[$x][0], "Resources") > 0 Or StringInStr($aUserInfo[$x][0], "Leavers") > 0 Or StringInStr($aUserInfo[$x][0], "Administration") > 0 Then _ArrayDelete($aUserInfo, $x) EndIf Next _ArrayConcatenate($aResult, $aUserInfo, 1) Next for $i = 0 To UBound($aResult) -1 If $aResult[$i][0] <> "" Then $sFill &= $aResult[$i][1] & "|" EndIf Next _ArrayDisplay($aResult, 'AD ' & UBound($aResult)) $sFill = StringTrimRight($sFill, 1) _GUICtrlComboBox_BeginUpdate($idComboBox) GUICtrlSetData($idComboBox, $sFill, "") _GUICtrlComboBox_EndUpdate($idComboBox) GUISetState(@SW_SHOW, $hGUI) GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") _GUICtrlListView_AddColumn($idMylist, "Computername", 296) Local $sComboRead = "" ; Loop until the user exits. While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE, $idClos ExitLoop Case $idComboBox $sComboRead = GUICtrlRead($idComboBox) Local $iIdx = _ArraySearch($aResult,$sComboRead,0,0,0,0,1,1) Local $aComputerOwner = _AD_GetObjectsInOU("OU=al,DC=AD,DC=AL,DC=ORG","(&(objectclass=computer)(managedby=" & $aResult[$iIdx][0] & "))",Default,"cn") _ArrayDelete($aComputerOwner,0) _ArrayDisplay($aComputerOwner) _GUICtrlListView_SetItemCount($idMylist,UBound($aComputerOwner)) If IsArray($aComputerOwner) Then MsgBox(0,"Test",$sComboRead) _GUICtrlListView_AddArray($idMylist, $aComputerOwner) ; <---- it fails Else GUICtrlSetData($idMylist, "No computer|") EndIf EndSwitch WEnd _AD_Close() ; Delete the previous GUI and all controls. GUIDelete($hGUI) Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam) #forceref $hWnd, $iMsg, $wParam Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView, $tInfo ; Local $tBuffer $hWndListView = $idMylist If Not IsHWnd($idMylist) Then $hWndListView = GUICtrlGetHandle($idMylist) $tNMHDR = DllStructCreate($tagNMHDR, $lParam) $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom")) $iIDFrom = DllStructGetData($tNMHDR, "IDFrom") $iCode = DllStructGetData($tNMHDR, "Code") Switch $hWndFrom Case $hWndListView Switch $iCode Case $NM_DBLCLK ; Sent by a list-view control when the user double-clicks an item with the left mouse button $tInfo = DllStructCreate($tagNMITEMACTIVATE, $lParam) _DebugPrint("$NM_DBLCLK" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _ "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _ "-->Code:" & @TAB & $iCode & @CRLF & _ "-->Index:" & @TAB & DllStructGetData($tInfo, "Index") & @CRLF & _ "-->SubItem:" & @TAB & DllStructGetData($tInfo, "SubItem") & @CRLF & _ "-->NewState:" & @TAB & DllStructGetData($tInfo, "NewState") & @CRLF & _ "-->OldState:" & @TAB & DllStructGetData($tInfo, "OldState") & @CRLF & _ "-->Changed:" & @TAB & DllStructGetData($tInfo, "Changed") & @CRLF & _ "-->ActionX:" & @TAB & DllStructGetData($tInfo, "ActionX") & @CRLF & _ "-->ActionY:" & @TAB & DllStructGetData($tInfo, "ActionY") & @CRLF & _ "-->lParam:" & @TAB & DllStructGetData($tInfo, "lParam") & @CRLF & _ "-->KeyFlags:" & @TAB & DllStructGetData($tInfo, "KeyFlags")) ; No return value EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>WM_NOTIFY Func _DebugPrint($s_Text, $sLine = @ScriptLineNumber) ConsoleWrite( _ "!===========================================================" & @CRLF & _ "+======================================================" & @CRLF & _ "-->Line(" & StringFormat("%04d", $sLine) & "):" & @TAB & $s_Text & @CRLF & _ "+======================================================" & @CRLF) EndFunc ;==>_DebugPrint Do I do it wrong?
       
      Thank you in advanced.
    • Trisha
      By Trisha
      I tried (using AutoIt) to automate a scenario where i  have to open IE with specific URL on my extranet(Xen Desktop or Citrix ) ,from there i need to download  file and then through WinSCP; I  have to move that file to another location that can be access from my Local system using VMWare.
      I did as far as the above step. Now i want to navigate from my extranet to my local desktop system. But i am not able to move  from there.Mouse click is also not working.Please find the below screenshot highlighted in YELLOW.