Jump to content

Help with my code please


dufran3
 Share

Recommended Posts

I am trying to create a GUI with checkboxes. 2 Tabs, that each contain checkboxes. Here is what I am trying to accomplish. My Code is complicated, but I just need help with a little part in it. The checkboxes, when I run the script, I'm not sure how to tell the script whether to check or uncheck them...here is an example of what I am talking about.

#include <GuiConstants.au3>
#include <H:\AutoIt\Scripts\Beta\KMC PC GUI\GUI_Functions_1.0.au3>

Opt("GUIOnEventMode", 1)

; GUI
$main1 = GuiCreate("Blah Blah Blah", 400, 400)
GuiSetIcon("H:\AutoIt\pc.ico", 0)
GUISetOnEvent($GUI_EVENT_CLOSE, "SpecialEvents")

;BUTTON
$start1 = GuiCtrlCreateButton("Start",300,30,75,25)
GUICtrlSetOnEvent($start1, "StartInstall")

$exit1 = GuiCtrlCreateButton("Exit",300,70,75,25)
GUICtrlSetOnEvent($exit1, "ExitButton")


; TAB0
GuiCtrlCreateTab(0, 80, 402, 400)
    $tab0=GUICtrlCreateTabitem ("Customization")

    $Ctrl01=GuiCtrlCreateCheckbox("Disable Automatic Updates", 5, 120, 150, 20)
    GuiCtrlSetState(-1, $GUI_UNCHECKED + $GUI_ENABLE)

    $Ctrl02=GuiCtrlCreateCheckbox("Disable Firewall", 5, 140, 100, 20)
    GuiCtrlSetState(-1, $GUI_CHECKED)

    $Ctrl03=GuiCtrlCreateCheckbox("Classic Start Menu", 5, 160, 120, 20)
    GuiCtrlSetState(-1, $GUI_CHECKED)

    $Ctrl04=GuiCtrlCreateCheckbox("Classic Windows Theme", 5, 180, 140, 20)
    GuiCtrlSetState(-1, $GUI_CHECKED)

    $Ctrl05=GuiCtrlCreateCheckbox("Add Domain Users", 5, 200, 110, 20)
    GuiCtrlSetState(-1, $GUI_CHECKED)   

    $Ctrl06=GuiCtrlCreateCheckbox("IE Settings", 5, 220, 75, 20)
    GuiCtrlSetState(-1, $GUI_CHECKED)

    $Ctrl07=GuiCtrlCreateCheckbox("Power Settings (PC)", 5, 240, 115, 20)
    GuiCtrlSetState(-0, $GUI_CHECKED)

    $Ctrl08=GuiCtrlCreateCheckbox("Power Settings (Laptop)", 5, 260, 135, 20)
    GuiCtrlSetState(-0, $GUI_CHECKED)   

    $Ctrl09=GuiCtrlCreateCheckbox("Remove Windows Messenger", 5, 280, 160, 20)
    GuiCtrlSetState(-1, $GUI_CHECKED)

    $Ctrl10=GuiCtrlCreateCheckbox("Disable Print Balloon Notification", 5, 300, 185, 20)
    GuiCtrlSetState(-1, $GUI_CHECKED)

Func StartInstall()

    If GUICtrlRead($Ctrl01,$GUI_CHECKED) Then
        MsgBox(0,"","Disable Automatic Updates Checked")
    EndIf
    
    If GUICtrlRead($Ctrl02,$GUI_CHECKED) Then
        MsgBox(0,"","Disable Firewall Checked")
    EndIf
EndFunc


Func TestMessage()
    MsgBox(0,"","Testing Starting Install")
EndFunc
    
    
Func ExitButton()
;Note: at this point @GUI_CTRLID would equal $okbutton
  GUISetOnEvent($GUI_EVENT_CLOSE,$main1)
EndFunc

;GUI MESSAGE LOOP
GuiSetState()
While GuiGetMsg() <> $GUI_EVENT_CLOSE
WEnd



Func SpecialEvents()
    

    Select
        Case @GUI_CTRLID = $GUI_EVENT_CLOSE
          ;MsgBox(0, "Close Pressed", "ID=" & @GUI_CTRLID & " WinHandle=" & @GUI_WINHANDLE)
            Exit
            
    EndSelect
    
EndFunc

What is happening, is I am creating a GUI with checkboxes, I want to be able to check certain things, and the have something run, like the If statement, to see if it is checked or not, if it is checked, I want it to message box that it is, if it isn't checked, I want it to do nothing. The problem is, even the items that I uncheck in the GUI are still messaging that they are checked. Can someone please assist me with this??? Thanks!

Edited by dufran3
Link to comment
Share on other sites

Hi,

i am not sure but I think the error might be in this bit :

Func StartInstall()

    If GUICtrlRead($Ctrl01,$GUI_CHECKED) Then
        MsgBox(0,"","Disable Automatic Updates Checked")
    EndIf
    
    If GUICtrlRead($Ctrl02,$GUI_CHECKED) Then
        MsgBox(0,"","Disable Firewall Checked")
    EndIf
EndFunc
oÝ÷ Ù:ç$iÈ^rFèÄ(ºWn±æ®¶­s`¢buT7G&Å&VBb33c´7G&ÃÒFVâ²26V6¶VBÂBÒVæ6V6¶V@¢Fõ÷F2¢VÇ6P¢FõöFöÖWFævVÇ6R¢VæF`

You can always put in a MsgBox(0,"value is:",GUICtrlRead($Ctrl02)) to get actualy see what is returned...

a short look at the help file on the GUICtrlRead command also tells me your 2nd parmater is probably invalid.

For Checkbox, Radio control several states can be returned as $GUI_FOCUS and $GUI_CHECKED,. So use i.e. BitAnd(GUICtrlRead($Item),$GUI_CHECKED) to test if the control is checked.

Hope this helps...
Link to comment
Share on other sites

  • Moderators

don't put your while loop inside a function

It's not in a function...

However:

OnEvent functions are only called when the option GUIOnEventMode is set to 1 - when in this mode GUIGetMsg is NOT used at all.

Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.

Link to comment
Share on other sites

yeah it's not a while loop either after taking anther look

i'm just use to doing it like this smal snip

While 1
    $msg = GuiGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE Or $msg = $Cancel
        ExitLoop
        
    Case $msg = $add
                _GUICtrlComboResetContent($DSCombo)
                _GUICtrlComboAddString($DSCombo,"scrnsave.scr")
                CDSOURCE()
                ;_GUICtrlComboSetCurSel($DSCombo,$default)
                $ret = _GUICtrlListGetSelItemsText ($listbox)
            If (Not IsArray($ret)) Then
                ;;;
                ;MsgBox(16, "Error", "Unknown error from _GUICtrlListGetSelItemsText")
            Else
                    For $i = 1 To $ret[0]
                    _GUICtrlComboAddString($DSCombo,$ret[$i])
                    Next
            EndIf       
    Case $msg = $UsePass
        If GUICtrlRead($UsePass) = $GUI_CHECKED Then
            GUICtrlSetState($RC, $GUI_ENABLE)
            GUICtrlSetState($MD, $GUI_ENABLE)
            GUICtrlSetState($SHA, $GUI_ENABLE)
            GUICtrlSetState($Passinput, $GUI_ENABLE)
        Else
            GUICtrlSetState($RC, $GUI_DISABLE)
            GUICtrlSetState($RC, $GUI_CHECKED)
            GUICtrlSetState($MD, $GUI_DISABLE)
            GUICtrlSetState($SHA, $GUI_DISABLE)         
            GUICtrlSetState($Passinput, $GUI_DISABLE)   
        EndIf
Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...