MPHillier Posted May 30, 2014 Share Posted May 30, 2014 So I'm teaching myself through the forum and help files - Listview and Checkboxes and the commands that control them. My project has two tabs - each with a listview on them - One is filed with .exe files from a directory and the other is filed with computer info from a .csv file. No problems there. I am able to setup both left and right click optionsmenus. I am able to check uncheck individual checkboxex - checkuncheck all items. My issue is I am attempting to Click a (Run) button and execute a command on only the checked items - once the command is run I want the checked item box to become unchecked. I can get it to work either by running a single checked item or [Odd] a group of checked items in a series. example item 0, 1,2,3,4, and so on. Yet when checking say items 1,3, 5 only the first check box is unchecked and the others are left. The command still runs but the items are still checked. Here is where I believe this should be happening - Below you can see I'm throwing out WOL commands throught NetScan (Condensed version - I have other commands under the WOL option) 1. First Get the count of the listview Items 2. Get only Items that are checked 3. put into array 4. run through Ping check - and run command. Running the command on only the checked items work great yet I can't get the checked Items to uncheck after the command has run on a non series group of checked items. I've put _GUICtrlListView_SetItemChecked and attempted other options found in the forum - all over the place to see what I get but if its not in a series - 1,2,3,4. uncheck fails on all but those in a series. (Odd) I hope this makes some meaning .... Func _RunSelectedOption() Local $aSelected[1], $1, $2, $iItemCount, $sFileName $iItemCount = _GUICtrlListView_GetItemCount($cListView);--- Number of items in listview $2 = 0 For $1 = 1 To $iItemCount If _GUICtrlListView_GetItemChecked($cListView, $1 - 1) = True Then ;-- which chkbox's are checked $aSelected[$2] = _GUICtrlListView_GetItemTextArray($cListView, $1 - 1);-- Take listview items\sub-items [column 1,2,3] ReDim $aSelected[UBound($aSelected) + 1] $2 += 1 EndIf Next For $1 = 1 To UBound($aSelected) -1 $sFileName = $aSelected[$1 - 1] ;-----------------------------------------------------------Wake Onlan If GUICtrlRead($hChkbxMWol) = $GUI_CHECKED Then Local $Replaced = StringReplace($sFileName [3],"-","") Run($NetScan & " /wol:" & $Replaced, "",@SW_HIDE) if GUICtrlRead ($hCheckbox) = $GUI_CHECKED Then MsgBox(64,"WOL", "Packet Sent To - " & $sFileName [1] & " \ " & $sFileName [3],3) EndIf Sleep(2000) EndIf Else MsgBox(48,"Connection", $sFileName [1] & " - Not Found Online", 3);-- Failed Ping Msg... EndIf Endif Next Sleep(1000 Endfunc My next step with the project is to be able to ping the checked items then in the listview indicate online or Offline - or something to that effect. Learning alot... Hey much Thanks in advance.... I Break and Fix things... If the surf is up I'm outta here..... Link to comment Share on other sites More sharing options...
MPHillier Posted May 30, 2014 Author Share Posted May 30, 2014 Note to add - Sorry the example does not show my ping action because it only happens on the other options not on the WOL option. Again I did not place those options above because I didn't think it is where the issue is. I'm missing something in the process.... Thanks I Break and Fix things... If the surf is up I'm outta here..... Link to comment Share on other sites More sharing options...
Kovacic Posted May 30, 2014 Share Posted May 30, 2014 You may want to assign each checkbox an array variable: $Preferences[1] = GUICtrlCreateCheckbox("Future Use 6", 320, 329, 97, 17) $Preferences[2] = GUICtrlCreateCheckbox("Future Use 6", 320, 329, 97, 17) $Preferences[3] = GUICtrlCreateCheckbox("Future Use 6", 320, 329, 97, 17) and when you go to see whats clicked... Dim $Preferences[50] for $i = 1 to 50 If _IsChecked($Preferences[$i]) Then MsgBox($MB_SYSTEMMODAL, "", "The checkbox is checked.") Else MsgBox($MB_SYSTEMMODAL, "", "The checkbox is not checked.") EndIf next as a rough example. C0d3 is P0etry( ͡° ͜ʖ ͡°) 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