amphoric

Allow Edit Checkbox / Radio Button that shows other buttons

9 posts in this topic

#1 ·  Posted

Good Morning,

I hope someone can help, below is a stripped down version of my current .au3 file and there is a few bits I just cant for the life of me get to work;

1. I would like the 'Allow Edit' checkbox once checked to allow the user to edit the contents of the 'AD Group Name' input box

2. I would like the 'Other / Internal Use' radio button if checked to show the '$OtherInternalGroup' group of radio buttons

My current code.....

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <MsgBoxConstants.au3>
#include <WinAPIShellEx.au3>
#include <FileConstants.au3>
#include <WinAPIFiles.au3>
#include <WinAPI.au3> ; used for Lo/Hi word




; Declare Global variables for WM_COMMAND and '_GetAppName()' function.
Global $__iComboWrite = 9999, $__iInputValue = 9999, $__iInputWrite = 9999


#Region ### START GUI section ###
$Form1_1 = GUICreate("Packaging Wrapper", 435, 545, -1, -1)
GUISetIcon("C.ico", -1)
GUISetBkColor(0xFFFFFF)
Global $ApplicationNameInput = GUICtrlCreateInput("", 24, 168, 385, 21)
GUICtrlSetTip(-1, "EG: Corel_WinZip_21.0_0.1")
$ADGroupNameInput = GUICtrlCreateInput("", 24, 224, 385, 21)
$AllowEditChk = GUICtrlCreateCheckbox("Allow Edit", 344, 200, 65, 17, BitOR($GUI_SS_DEFAULT_CHECKBOX,$BS_RIGHT))
GUICtrlSetBkColor(-1, 0xE3E3E3)
$ApplicationTypeGroup = GUICtrlCreateGroup("", 24, 272, 185, 113)
$CatalogueAppChk = GUICtrlCreateRadio("Catalogue Application", 32, 288, 137, 17)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$NonCatalogueAppChk = GUICtrlCreateRadio("Non-Catalogue Application", 32, 320, 161, 17)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$OtherAppChk = GUICtrlCreateRadio("Other / Internal Use", 32, 352, 137, 17)
GUICtrlSetBkColor(-1, 0xE3E3E3)
GUICtrlCreateGroup("", -99, -99, 1, 1)
; $OtherInternalGroup = GUICtrlCreateGroup("", 216, 272, 193, 113)
$OSCoreApplicationChk = GUICtrlCreateRadio("OS Core Application", 224, 288, 129, 17)
GUICtrlSetState(-1, $GUI_HIDE)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$InternalOnlyChk = GUICtrlCreateRadio("Internal ONLY Application", 224, 320, 161, 17)
GUICtrlSetState(-1, $GUI_HIDE)
GUICtrlSetBkColor(-1, 0xE3E3E3)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$OtherInternalLabel = GUICtrlCreateLabel("Other / Internal Use", 216, 256, 118, 17, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetState(-1, $GUI_HIDE)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000000)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$ConfirmGroup = GUICtrlCreateGroup("", 24, 392, 385, 89)
$Confirm = GUICtrlCreateCheckbox("I confirm all details are correct, and I wish to proceed", 48, 456, 329, 17, BitOR($GUI_SS_DEFAULT_CHECKBOX, $BS_CENTER))
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetBkColor(-1, 0xE3E3E3)
$ConfirmDesc = GUICtrlCreateEdit("", 32, 408, 361, 41, 0, 0)
GUICtrlSetData(-1, StringFormat("Please confirm that all entered information is correct, and the you wish to \r\nproceed with the creation of the " & Chr(39) & "Application Toolkit Wrapper" & Chr(39) & "."))
GUICtrlSetBkColor(-1, 0xE3E3E3)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$ProceedBtn = GUICtrlCreateButton("Proceed", 128, 488, 75, 25)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x008000)
$CancelBtn = GUICtrlCreateButton("Cancel", 240, 488, 75, 25)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFF0000)
$CapitaLogo = GUICtrlCreatePic("Logo.jpg", 24, 8, 159, 33)
$PackagingWrapperLabel = GUICtrlCreateLabel("Packaging Wrapper", 224, 8, 187, 28)
GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000000)
$CreatedByLabel = GUICtrlCreateLabel("...", 16, 528, 405, 15, $SS_CENTER)
GUICtrlSetFont(-1, 7, 400, 0, "MS Serif")
$VerLabel = GUICtrlCreateLabel("Ver. 1.0 ALPHA", 328, 40, 79, 17)
$Step1Label = GUICtrlCreateLabel("Please Enter The Following Information", 24, 80, 274, 20, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000080)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$Graphic3 = GUICtrlCreateGraphic(16, 72, 404, 452, BitOR($GUI_SS_DEFAULT_GRAPHIC, $SS_SIMPLE))
GUICtrlSetColor(-1, 0xE3E3E3)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$ApplicationNameDesc = GUICtrlCreateEdit("", 24, 128, 393, 33, 0, 0)
GUICtrlSetData(-1, StringFormat("Must be in the following format: Manufacturer_AppName_AppVersion_Rev\r\nEG: Corel_WinZip_21.0_01"))
GUICtrlSetBkColor(-1, 0xE3E3E3)
$ADGroupNameLabel = GUICtrlCreateLabel("AD Group Name", 24, 200, 95, 17, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000000)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$ApplicationNameLabel = GUICtrlCreateLabel("Application Name", 24, 112, 103, 17, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000000)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$ApplicationTypeLabel = GUICtrlCreateLabel("Application Type", 24, 256, 99, 17, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000000)
GUICtrlSetBkColor(-1, 0xE3E3E3)
GUISetState(@SW_SHOW)
#EndRegion ### END GUI section ###

;GLOBAL VARIABLES
Global $ApplicationName, $adstring1
Global $ADGroupName = $adstring1
Global $envSystemDrive = EnvGet("systemdrive")
Global $PackagingDirectory = "Packaging\???_Apps"
Global $FullDir = $envSystemDrive & "\" & $PackagingDirectory & "\" & $ApplicationName
Global $currentDate = @MDAY &"-"& @MON &"-"& @YEAR
Global $currentTime = @HOUR &":"& @MIN &":"& @SEC


; Register the WM_COMMAND to intercept when the value in the first input's value is changed.
    GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')


While 1
    $nMsg = GUIGetMsg()

    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

        Case $CancelBtn
            Exit

        Case $ProceedBtn
            ;Check Application Name Validity
            $ApplicationNameInputValid = StringSplit(GUICtrlRead($ApplicationNameInput), "_")
            If $ApplicationNameInputValid[0]<> 4 Then
            ConsoleWrite("Application Name - NOT Valid" & @CRLF)
            $ApplicationNameInputValidYes = 0
            MsgBox(0,"Are The Details Correct?", "Application Name NOT Valid.")
            GUICtrlSetState($ApplicationNameInput,$GUI_FOCUS)
            Elseif $ApplicationNameInputValid[0]= 4 Then
            ConsoleWrite("Application Name - Valid" & @CRLF)
            $ApplicationNameInputValidYes = 1
            EndIf

            ;Is Confirm Checkbox 'Checked'
            if GUICtrlRead($Confirm) = $GUI_CHECKED Then
                ConsoleWrite("$Confirm - ticked" & @CRLF)
                $ConfirmYes = 1
            Else
                $ConfirmYes = 0
                ConsoleWrite("$Confirm - NOT ticked" & @CRLF)
                MsgBox(0,"Are The Details Correct?", "Please complete confirmation.")
            EndIf

            ;Is $CatalogueAppChk 'Checked'
            if GUICtrlRead($CatalogueAppChk) = $GUI_CHECKED Then
                ConsoleWrite("$CatalogueAppChk - ticked" & @CRLF)
                $CatalogueAppChkYes = 1
            Else
                ConsoleWrite("$CatalogueAppChk - NOT ticked" & @CRLF)
                $CatalogueAppChkYes = 0
            EndIf

            ;Is $NonCatalogueAppChk 'Checked'
            if GUICtrlRead($NonCatalogueAppChk) = $GUI_CHECKED Then
                ConsoleWrite("$NonCatalogueAppChk -  ticked" & @CRLF)
                $NonCatalogueAppChkYes = 1
            Else
                ConsoleWrite("$NonCatalogueAppChk - NOT ticked" & @CRLF)
                $NonCatalogueAppChkYes = 0
            EndIf

            ;Is $OtherAppChk 'Checked'
            if GUICtrlRead($OtherAppChk) = $GUI_CHECKED Then
                ConsoleWrite("$OtherAppChk - ticked" & @CRLF)
                $OtherAppChkYes = 1
            Else
                ConsoleWrite("$OtherAppChk - NOT ticked" & @CRLF)
                $OtherAppChkYes = 0
            EndIf






 ConsoleWrite(@CRLF & "##### COMPLETED #####" & @CRLF)
    EndSwitch

WEnd

;Check for 'Application Name' update
Func _GetAppName()
    $adString = StringReplace(GUICtrlRead($ApplicationNameInput), "_", " ",2)
    $adstrings = StringSplit($adString, "_")
    Global $adString1 = $adstrings[1]
    Global $ApplicationName = GUICtrlRead($ApplicationNameInput)
        GUICtrlSetData($ADGroupNameInput, $adstring1)
EndFunc


;WM_COMMAND Function used for Auto Input of fields
Func WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
    #forceref $hWnd, $iMsg, $lParam

    Local $iHiWord = _WinAPI_HiWord($wParam) ; Control identification code.
    Local $iLoWord = _WinAPI_LoWord($wParam) ; Control identifier.
    Switch $iHiWord
        Case $EN_CHANGE ; When a change event is intercepted.
            Switch $iLoWord ; Retrieve the controlid.
                Case _GetAppName() ; If it matches the first input then call the custom function _GetInput.
                    ConsoleWrite("Debug: value was changed." & @CRLF)
                    _GetAppName()
            EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_COMMAND

I hope all this makes sense.

Thanks in advance :)

Share this post


Link to post
Share on other sites



#2 ·  Posted (edited)

Something like this maybe:

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <MsgBoxConstants.au3>
#include <WinAPIShellEx.au3>
#include <FileConstants.au3>
#include <WinAPIFiles.au3>
#include <WinAPI.au3> ; used for Lo/Hi word

; Declare Global variables for WM_COMMAND and '_GetAppName()' function.
Global $__iComboWrite = 9999, $__iInputValue = 9999, $__iInputWrite = 9999
Global $bOtherInternalGroup = False

#Region ### START GUI section ###
$Form1_1 = GUICreate("Packaging Wrapper", 435, 545, -1, -1)
GUISetIcon("C.ico", -1)
GUISetBkColor(0xFFFFFF)
Global $ApplicationNameInput = GUICtrlCreateInput("", 24, 168, 385, 21)
GUICtrlSetTip(-1, "EG: Corel_WinZip_21.0_0.1")
$ADGroupNameInput = GUICtrlCreateInput("", 24, 224, 385, 21)
GUICtrlSetState($ADGroupNameInput, $GUI_DISABLE)
$AllowEditChk = GUICtrlCreateCheckbox("Allow Edit", 344, 200, 65, 17, BitOR($GUI_SS_DEFAULT_CHECKBOX,$BS_RIGHT))
GUICtrlSetBkColor(-1, 0xE3E3E3)
$ApplicationTypeGroup = GUICtrlCreateGroup("", 24, 272, 185, 113)
$CatalogueAppChk = GUICtrlCreateRadio("Catalogue Application", 32, 288, 137, 17)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$NonCatalogueAppChk = GUICtrlCreateRadio("Non-Catalogue Application", 32, 320, 161, 17)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$OtherAppChk = GUICtrlCreateRadio("Other / Internal Use", 32, 352, 137, 17)
GUICtrlSetBkColor(-1, 0xE3E3E3)
GUICtrlCreateGroup("", -99, -99, 1, 1)
; $OtherInternalGroup = GUICtrlCreateGroup("", 216, 272, 193, 113)
$OSCoreApplicationChk = GUICtrlCreateRadio("OS Core Application", 224, 288, 129, 17)
GUICtrlSetState(-1, $GUI_HIDE)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$InternalOnlyChk = GUICtrlCreateRadio("Internal ONLY Application", 224, 320, 161, 17)
GUICtrlSetState(-1, $GUI_HIDE)
GUICtrlSetBkColor(-1, 0xE3E3E3)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$OtherInternalLabel = GUICtrlCreateLabel("Other / Internal Use", 216, 256, 118, 17, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetState(-1, $GUI_HIDE)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000000)
GUICtrlSetBkColor(-1, 0xE3E3E3)

$ConfirmGroup = GUICtrlCreateGroup("", 24, 392, 385, 89)
$Confirm = GUICtrlCreateCheckbox("I confirm all details are correct, and I wish to proceed", 48, 456, 329, 17, BitOR($GUI_SS_DEFAULT_CHECKBOX, $BS_CENTER))
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetBkColor(-1, 0xE3E3E3)
$ConfirmDesc = GUICtrlCreateEdit("", 32, 408, 361, 41, 0, 0)
GUICtrlSetData(-1, StringFormat("Please confirm that all entered information is correct, and the you wish to \r\nproceed with the creation of the " & Chr(39) & "Application Toolkit Wrapper" & Chr(39) & "."))
GUICtrlSetBkColor(-1, 0xE3E3E3)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$ProceedBtn = GUICtrlCreateButton("Proceed", 128, 488, 75, 25)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x008000)
$CancelBtn = GUICtrlCreateButton("Cancel", 240, 488, 75, 25)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFF0000)
$CapitaLogo = GUICtrlCreatePic("Logo.jpg", 24, 8, 159, 33)
$PackagingWrapperLabel = GUICtrlCreateLabel("Packaging Wrapper", 224, 8, 187, 28)
GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000000)
$CreatedByLabel = GUICtrlCreateLabel("...", 16, 528, 405, 15, $SS_CENTER)
GUICtrlSetFont(-1, 7, 400, 0, "MS Serif")
$VerLabel = GUICtrlCreateLabel("Ver. 1.0 ALPHA", 328, 40, 79, 17)
$Step1Label = GUICtrlCreateLabel("Please Enter The Following Information", 24, 80, 274, 20, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000080)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$Graphic3 = GUICtrlCreateGraphic(16, 72, 404, 452, BitOR($GUI_SS_DEFAULT_GRAPHIC, $SS_SIMPLE))
GUICtrlSetColor(-1, 0xE3E3E3)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$ApplicationNameDesc = GUICtrlCreateEdit("", 24, 128, 393, 33, 0, 0)
GUICtrlSetData(-1, StringFormat("Must be in the following format: Manufacturer_AppName_AppVersion_Rev\r\nEG: Corel_WinZip_21.0_01"))
GUICtrlSetBkColor(-1, 0xE3E3E3)
$ADGroupNameLabel = GUICtrlCreateLabel("AD Group Name", 24, 200, 95, 17, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000000)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$ApplicationNameLabel = GUICtrlCreateLabel("Application Name", 24, 112, 103, 17, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000000)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$ApplicationTypeLabel = GUICtrlCreateLabel("Application Type", 24, 256, 99, 17, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000000)
GUICtrlSetBkColor(-1, 0xE3E3E3)
GUISetState(@SW_SHOW)
#EndRegion ### END GUI section ###

;GLOBAL VARIABLES
Global $ApplicationName, $adstring1
Global $ADGroupName = $adstring1
Global $envSystemDrive = EnvGet("systemdrive")
Global $PackagingDirectory = "Packaging\???_Apps"
Global $FullDir = $envSystemDrive & "\" & $PackagingDirectory & "\" & $ApplicationName
Global $currentDate = @MDAY &"-"& @MON &"-"& @YEAR
Global $currentTime = @HOUR &":"& @MIN &":"& @SEC

AdlibRegister("_GetAppName")

While 1
    $nMsg = GUIGetMsg()
    If BitAND(GUICtrlRead($OtherAppChk), $GUI_CHECKED) = $GUI_CHECKED And $bOtherInternalGroup = False Then
        GUICtrlSetState($OSCoreApplicationChk, $GUI_SHOW)
        GUICtrlSetState($InternalOnlyChk, $GUI_SHOW)
        GUICtrlSetState($OtherInternalLabel, $GUI_SHOW)
        $bOtherInternalGroup = True
    ElseIf BitAND(GUICtrlRead($OtherAppChk), $GUI_UNCHECKED) = $GUI_UNCHECKED And $bOtherInternalGroup = True Then
        GUICtrlSetState($OSCoreApplicationChk, $GUI_HIDE)
        GUICtrlSetState($InternalOnlyChk, $GUI_HIDE)
        GUICtrlSetState($OtherInternalLabel, $GUI_HIDE)
        $bOtherInternalGroup = False
    EndIf
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $CancelBtn
            Exit
        Case $AllowEditChk
            If GUICtrlRead($AllowEditChk) = $GUI_CHECKED Then
                GUICtrlSetState($ADGroupNameInput, $GUI_ENABLE)
                AdlibUnRegister("_GetAppName")
            Else
                GUICtrlSetState($ADGroupNameInput, $GUI_DISABLE)
                AdlibRegister("_GetAppName")
            EndIf
        Case $ProceedBtn
            ;Check Application Name Validity
            $ApplicationNameInputValid = StringSplit(GUICtrlRead($ApplicationNameInput), "_")
            If $ApplicationNameInputValid[0]<> 4 Then
            ConsoleWrite("Application Name - NOT Valid" & @CRLF)
            $ApplicationNameInputValidYes = 0
            MsgBox(0,"Are The Details Correct?", "Application Name NOT Valid.")
            GUICtrlSetState($ApplicationNameInput,$GUI_FOCUS)
            Elseif $ApplicationNameInputValid[0]= 4 Then
            ConsoleWrite("Application Name - Valid" & @CRLF)
            $ApplicationNameInputValidYes = 1
            EndIf

            ;Is Confirm Checkbox 'Checked'
            if GUICtrlRead($Confirm) = $GUI_CHECKED Then
                ConsoleWrite("$Confirm - ticked" & @CRLF)
                $ConfirmYes = 1
            Else
                $ConfirmYes = 0
                ConsoleWrite("$Confirm - NOT ticked" & @CRLF)
                MsgBox(0,"Are The Details Correct?", "Please complete confirmation.")
            EndIf

            ;Is $CatalogueAppChk 'Checked'
            if GUICtrlRead($CatalogueAppChk) = $GUI_CHECKED Then
                ConsoleWrite("$CatalogueAppChk - ticked" & @CRLF)
                $CatalogueAppChkYes = 1
            Else
                ConsoleWrite("$CatalogueAppChk - NOT ticked" & @CRLF)
                $CatalogueAppChkYes = 0
            EndIf

            ;Is $NonCatalogueAppChk 'Checked'
            if GUICtrlRead($NonCatalogueAppChk) = $GUI_CHECKED Then
                ConsoleWrite("$NonCatalogueAppChk -  ticked" & @CRLF)
                $NonCatalogueAppChkYes = 1
            Else
                ConsoleWrite("$NonCatalogueAppChk - NOT ticked" & @CRLF)
                $NonCatalogueAppChkYes = 0
            EndIf

            ;Is $OtherAppChk 'Checked'
            if GUICtrlRead($OtherAppChk) = $GUI_CHECKED Then
                ConsoleWrite("$OtherAppChk - ticked" & @CRLF)
                $OtherAppChkYes = 1
            Else
                ConsoleWrite("$OtherAppChk - NOT ticked" & @CRLF)
                $OtherAppChkYes = 0
            EndIf

 ConsoleWrite(@CRLF & "##### COMPLETED #####" & @CRLF)
    EndSwitch

WEnd

;Check for 'Application Name' update
Func _GetAppName()
    $adString = StringReplace(GUICtrlRead($ApplicationNameInput), "_", " ",2)
    $adstrings = StringSplit($adString, "_")
    Global $adString1 = $adstrings[1]
    Global $ApplicationName = GUICtrlRead($ApplicationNameInput)
        GUICtrlSetData($ADGroupNameInput, $adstring1)
EndFunc

 

Edited by Subz

Share this post


Link to post
Share on other sites

#3 ·  Posted

Hey Subz,

Yes like that!! Although this still doesn't allow the user to edit the contents of the input box... I haven't a clue how to make the radiobutton show the other radio buttons either :( 

 

Thanks

Share this post


Link to post
Share on other sites

#4 ·  Posted

Updated post above, I'm a little confused with regards to WM_COMMAND (which was stopping you from editing the input box), what were trying to do with this?

Share this post


Link to post
Share on other sites

#5 ·  Posted (edited)

The wmcommand basically allows for the update of the AD Group box when entering the Application name. if you enter a application name it also populates the AD Group box stripping out the ' _ ' (Underscore) character.

 

Unfortunately this new code has stopped that functionality, it no longer auto populates the AD Group input box :(

Edited by amphoric
Update of information

Share this post


Link to post
Share on other sites

#6 ·  Posted

Have updated the post above, the WMCommand was being used incorrectly which is why I asked, I've now removed it and added AdLibRegister which uses the same _GetAppName function, when checking/unchecking "Allow Edit" this will enable/disable the _GetAppName function.  Hope that makes sense.

Share this post


Link to post
Share on other sites

#7 ·  Posted

OMG SUBZ! You are my HERO!!!!!!

Thank you so much, you don't know how long I've been looking at trying to do this!

Can you please explain the changes and why they were required? I would like to learn how/where I went wrong

 

Thanks

Share this post


Link to post
Share on other sites

#8 ·  Posted

Have added a few comments to the code, changed function global declarations to local, shouldn't declare global variables within functions.  Anyway I hope it makes sense, sorry documentation isn't my forte :)

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <MsgBoxConstants.au3>
#include <WinAPIShellEx.au3>
#include <FileConstants.au3>
#include <WinAPIFiles.au3>
#include <WinAPI.au3> ; used for Lo/Hi word

; Declare Global variables for WM_COMMAND and '_GetAppName()' function.
Global $__iComboWrite = 9999, $__iInputValue = 9999, $__iInputWrite = 9999
;~ Boolean to determine if changes to $bOtherInternalGroup has occurred
Global $bOtherInternalGroup = False

#Region ### START GUI section ###
$Form1_1 = GUICreate("Packaging Wrapper", 435, 545, -1, -1)
GUISetIcon("C.ico", -1)
GUISetBkColor(0xFFFFFF)
Global $ApplicationNameInput = GUICtrlCreateInput("", 24, 168, 385, 21)
GUICtrlSetTip(-1, "EG: Corel_WinZip_21.0_0.1")
$ADGroupNameInput = GUICtrlCreateInput("", 24, 224, 385, 21)
GUICtrlSetState($ADGroupNameInput, $GUI_DISABLE)
$AllowEditChk = GUICtrlCreateCheckbox("Allow Edit", 344, 200, 65, 17, BitOR($GUI_SS_DEFAULT_CHECKBOX,$BS_RIGHT))
GUICtrlSetBkColor(-1, 0xE3E3E3)
$ApplicationTypeGroup = GUICtrlCreateGroup("", 24, 272, 185, 113)
$CatalogueAppChk = GUICtrlCreateRadio("Catalogue Application", 32, 288, 137, 17)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$NonCatalogueAppChk = GUICtrlCreateRadio("Non-Catalogue Application", 32, 320, 161, 17)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$OtherAppChk = GUICtrlCreateRadio("Other / Internal Use", 32, 352, 137, 17)
GUICtrlSetBkColor(-1, 0xE3E3E3)
GUICtrlCreateGroup("", -99, -99, 1, 1)
; $OtherInternalGroup = GUICtrlCreateGroup("", 216, 272, 193, 113)
$OSCoreApplicationChk = GUICtrlCreateRadio("OS Core Application", 224, 288, 129, 17)
GUICtrlSetState(-1, $GUI_HIDE)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$InternalOnlyChk = GUICtrlCreateRadio("Internal ONLY Application", 224, 320, 161, 17)
GUICtrlSetState(-1, $GUI_HIDE)
GUICtrlSetBkColor(-1, 0xE3E3E3)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$OtherInternalLabel = GUICtrlCreateLabel("Other / Internal Use", 216, 256, 118, 17, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetState(-1, $GUI_HIDE)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000000)
GUICtrlSetBkColor(-1, 0xE3E3E3)

$ConfirmGroup = GUICtrlCreateGroup("", 24, 392, 385, 89)
$Confirm = GUICtrlCreateCheckbox("I confirm all details are correct, and I wish to proceed", 48, 456, 329, 17, BitOR($GUI_SS_DEFAULT_CHECKBOX, $BS_CENTER))
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetBkColor(-1, 0xE3E3E3)
$ConfirmDesc = GUICtrlCreateEdit("", 32, 408, 361, 41, 0, 0)
GUICtrlSetData(-1, StringFormat("Please confirm that all entered information is correct, and the you wish to \r\nproceed with the creation of the " & Chr(39) & "Application Toolkit Wrapper" & Chr(39) & "."))
GUICtrlSetBkColor(-1, 0xE3E3E3)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$ProceedBtn = GUICtrlCreateButton("Proceed", 128, 488, 75, 25)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x008000)
$CancelBtn = GUICtrlCreateButton("Cancel", 240, 488, 75, 25)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFF0000)
$CapitaLogo = GUICtrlCreatePic("Logo.jpg", 24, 8, 159, 33)
$PackagingWrapperLabel = GUICtrlCreateLabel("Packaging Wrapper", 224, 8, 187, 28)
GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000000)
$CreatedByLabel = GUICtrlCreateLabel("...", 16, 528, 405, 15, $SS_CENTER)
GUICtrlSetFont(-1, 7, 400, 0, "MS Serif")
$VerLabel = GUICtrlCreateLabel("Ver. 1.0 ALPHA", 328, 40, 79, 17)
$Step1Label = GUICtrlCreateLabel("Please Enter The Following Information", 24, 80, 274, 20, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000080)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$Graphic3 = GUICtrlCreateGraphic(16, 72, 404, 452, BitOR($GUI_SS_DEFAULT_GRAPHIC, $SS_SIMPLE))
GUICtrlSetColor(-1, 0xE3E3E3)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$ApplicationNameDesc = GUICtrlCreateEdit("", 24, 128, 393, 33, 0, 0)
GUICtrlSetData(-1, StringFormat("Must be in the following format: Manufacturer_AppName_AppVersion_Rev\r\nEG: Corel_WinZip_21.0_01"))
GUICtrlSetBkColor(-1, 0xE3E3E3)
$ADGroupNameLabel = GUICtrlCreateLabel("AD Group Name", 24, 200, 95, 17, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000000)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$ApplicationNameLabel = GUICtrlCreateLabel("Application Name", 24, 112, 103, 17, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000000)
GUICtrlSetBkColor(-1, 0xE3E3E3)
$ApplicationTypeLabel = GUICtrlCreateLabel("Application Type", 24, 256, 99, 17, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000000)
GUICtrlSetBkColor(-1, 0xE3E3E3)
GUISetState(@SW_SHOW)
#EndRegion ### END GUI section ###

;GLOBAL VARIABLES
Global $ApplicationName, $adstring1
Global $ADGroupName = $adstring1
Global $envSystemDrive = EnvGet("systemdrive")
Global $PackagingDirectory = "Packaging\???_Apps"
Global $FullDir = $envSystemDrive & "\" & $PackagingDirectory & "\" & $ApplicationName
Global $currentDate = @MDAY &"-"& @MON &"-"& @YEAR
Global $currentTime = @HOUR &":"& @MIN &":"& @SEC

;~ Registers _GetAppName as an Adlib function, checks every 250ms (default)
AdlibRegister("_GetAppName")

While 1
    $nMsg = GUIGetMsg()
    ;~ Check if radio button ($OtherAppChk) is selected and hide/show hidden radio buttons
    ;~ Uses $bOtherInternalGroup (Boolean) to stop flickering
    If BitAND(GUICtrlRead($OtherAppChk), $GUI_CHECKED) = $GUI_CHECKED And $bOtherInternalGroup = False Then
        GUICtrlSetState($OSCoreApplicationChk, $GUI_SHOW)
        GUICtrlSetState($InternalOnlyChk, $GUI_SHOW)
        GUICtrlSetState($OtherInternalLabel, $GUI_SHOW)
        $bOtherInternalGroup = True
    ElseIf BitAND(GUICtrlRead($OtherAppChk), $GUI_UNCHECKED) = $GUI_UNCHECKED And $bOtherInternalGroup = True Then
        GUICtrlSetState($OSCoreApplicationChk, $GUI_HIDE)
        GUICtrlSetState($InternalOnlyChk, $GUI_HIDE)
        GUICtrlSetState($OtherInternalLabel, $GUI_HIDE)
        $bOtherInternalGroup = False
    EndIf
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $CancelBtn
            Exit
        Case $AllowEditChk
            ;~ Check if $AllowEditChk Checkbox is checked or not:
            ;~ Enables/Disabled $ADGroupNameInput
            ;~ Register/Unregister _GetAppName function
            If GUICtrlRead($AllowEditChk) = $GUI_CHECKED Then
                GUICtrlSetState($ADGroupNameInput, $GUI_ENABLE)
                AdlibUnRegister("_GetAppName")
            Else
                GUICtrlSetState($ADGroupNameInput, $GUI_DISABLE)
                AdlibRegister("_GetAppName")
            EndIf
        Case $ProceedBtn
            ;Check Application Name Validity
            $ApplicationNameInputValid = StringSplit(GUICtrlRead($ApplicationNameInput), "_")
            If $ApplicationNameInputValid[0]<> 4 Then
            ConsoleWrite("Application Name - NOT Valid" & @CRLF)
            $ApplicationNameInputValidYes = 0
            MsgBox(0,"Are The Details Correct?", "Application Name NOT Valid.")
            GUICtrlSetState($ApplicationNameInput,$GUI_FOCUS)
            Elseif $ApplicationNameInputValid[0]= 4 Then
            ConsoleWrite("Application Name - Valid" & @CRLF)
            $ApplicationNameInputValidYes = 1
            EndIf

            ;Is Confirm Checkbox 'Checked'
            if GUICtrlRead($Confirm) = $GUI_CHECKED Then
                ConsoleWrite("$Confirm - ticked" & @CRLF)
                $ConfirmYes = 1
            Else
                $ConfirmYes = 0
                ConsoleWrite("$Confirm - NOT ticked" & @CRLF)
                MsgBox(0,"Are The Details Correct?", "Please complete confirmation.")
            EndIf

            ;Is $CatalogueAppChk 'Checked'
            if GUICtrlRead($CatalogueAppChk) = $GUI_CHECKED Then
                ConsoleWrite("$CatalogueAppChk - ticked" & @CRLF)
                $CatalogueAppChkYes = 1
            Else
                ConsoleWrite("$CatalogueAppChk - NOT ticked" & @CRLF)
                $CatalogueAppChkYes = 0
            EndIf

            ;Is $NonCatalogueAppChk 'Checked'
            if GUICtrlRead($NonCatalogueAppChk) = $GUI_CHECKED Then
                ConsoleWrite("$NonCatalogueAppChk -  ticked" & @CRLF)
                $NonCatalogueAppChkYes = 1
            Else
                ConsoleWrite("$NonCatalogueAppChk - NOT ticked" & @CRLF)
                $NonCatalogueAppChkYes = 0
            EndIf

            ;Is $OtherAppChk 'Checked'
            if GUICtrlRead($OtherAppChk) = $GUI_CHECKED Then
                ConsoleWrite("$OtherAppChk - ticked" & @CRLF)
                $OtherAppChkYes = 1
            Else
                ConsoleWrite("$OtherAppChk - NOT ticked" & @CRLF)
                $OtherAppChkYes = 0
            EndIf

 ConsoleWrite(@CRLF & "##### COMPLETED #####" & @CRLF)
    EndSwitch

WEnd

;Check for 'Application Name' update
Func _GetAppName()
    Local  $adString = StringReplace(GUICtrlRead($ApplicationNameInput), "_", " ",2)
    Local $adstrings = StringSplit($adString, "_")
    Local $adString1 = $adstrings[1]
    Local $ApplicationName = GUICtrlRead($ApplicationNameInput)
        GUICtrlSetData($ADGroupNameInput, $adstring1)
EndFunc

 

Share this post


Link to post
Share on other sites

#9 ·  Posted

That's perfect! Thanks again for your help

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

    • Earthshine
      By Earthshine
      This is pretty useful to me at least, I hope to others. Whenever you need to poke a button or such on a GUI, you can just make calls to this UDF and instruct it how long to wait, 0 is forever, anyway, let the code to the explaining. Feel free to help expand this UDF. I plan to create new ones as I go along that support all the Win32 and .NET Controls. Ultimately, I would like to be able to fully control any type of control, this works well with most. Just an example of what you can do.
       
      The test installs and can uninstall 7-Zip 15.14 (x64) Setup.exe
      NOTE: Logger Author(s) .....: Michael Mims (zorphnog)
      ;                    the logging script can be obtained here
      ;                   https://www.autoitscript.com/forum/topic/156196-log4a-a-logging-udf/
       
       
      install_7zip_test.au3
      WaitForControls.au3
    • FrancescoDiMuro
      By FrancescoDiMuro
      Good morning everyone
      I worked a bit on a little project of mine, and I managed to do what I was trying to do, or, automate a quiz in AutoIt.
      Now, everything works fine but, in order to achieve what I'm trying to achive, I'd like to make this script run faster.
      I'll attach a portion of the code in order to let you understand what my script does.
      $objIE_h1 = _IETagNameGetCollection($objIE, "h1") ; Take the text of the answer If @error Then ConsoleWrite("Errore durante la lettura degli h1 nella pagina. - Errore: " & @error & @CRLF) Else For $objElement In $objIE_h1 $strInnerText = $objElement.innerText Next Select Case StringInStr($strInnerText, "QUESTION") ; Here is the question ; PS4 PRO $objSpans = _IETagNameGetCollection($objIE, "span") ; Answers are stored here For $objElement In $objSpans If $i >= 4 Then $strAnswer = $objElement.innerText ; Take the text of the answer n° 0, 1, 2, 3 If StringInStr($strAnswer, "CORRECT ANSWER") Then ; If I match the correct answer, then, I have to click on the input with answer id = answer_i $j = $i - 4 $objInput = _IEGetObjById($objIE, "answer_" & $j) If @error Then ConsoleWrite("Errore durante la lettura della risposta #" & $i & " - Errore: " & @error & @CRLF) Else _IEAction($objInput, "click") If @error Then ConsoleWrite("Errore durante il click sull'elemento. - Errore: " & @error) Else ConsoleWrite($j & ") Risposta: " & $strAnswer & @CRLF) ExitLoop EndIf EndIf EndIf $i+=1 Else $i+=1 EndIf Next $i = 0 $j = 0 This is what my script does.
      Questions are 20, in which I have 15 multiple choice question, 2 images ( on which I use _IEImgClick() ), and 3 text inputs ( a simple send with the text I have to enter ).
      How can I make all of these, faster?
      If I reach this goal, I've probably done one of my best goals in life, and I'd like to share my happiness with you, giving a huge donation to this fantastic community!
      Thanks for your help
    • Jibberish
      By Jibberish
      Hello,
      I have used this forum to get help many times. I thought it was time to (hopefully) help others.
      I created a script that reads a text file with a list of videos, displays the videos in a GUI with checkboxes next to the names, and displays the selected videos. This will become a part of a larger script I am creating to test a video player. The tough part for me was creating the GUI and Dynamic list of videos. I had a lot of trouble finding samples to help me, but finally found one  written by Melba23. The link is in the code, so he gets credit for helping! I also have not used arrays much and they are very picky about looping through the arrays without getting the dreaded error " Array variable has incorrect number of subscripts or subscript dimension range exceeded."  However diligence paid off!
      To run this code, take the video names commented below and create a videos.txt file in your script execution directory. You can put however many video names in this list. Thus the dynamic features of the code.
      Cheers!
      Jibberish
      #include <MsgBoxConstants.au3> #include <StringConstants.au3> #include <array.au3> #include <File.au3> #include <GUIConstantsEx.au3> Local $sMediaFile = @ScriptDir & "\videos.txt" ;~ Videos in videos.txt are: ;~ bbb_1080_60s.mp4 ;~ bbb_1080_60s_1.mp4 ;~ bbb_1080_60s_2.mp4 ;~ tos_4K_60s_HEVC.mp4 ;~ tos_4K_60s_HEVC_1.mp4 ;~ tos_4K_60s_HEVC_2.mp4 ;~ ;~ Additional videos can be added to this list. The functions are Dynamic. Dim $aMediaManifest Local $aArrayFile Local $aVideos Local $sVideoName Local $i ; MAIN ; Put the Video File Names into an Array _FileReadToArray($sMediaFile, $aArrayFile) Local $iVideoCount = UBound($aArrayFile) -1 ; Get the number of videos - 1 to prevent errors _ArrayDelete($aArrayFile, 0) ;Counter just gets in the way ; Move backwards through the array deleting the blank lines For $i = $iVideoCount - 1 To 0 Step -1 If $aArrayFile[$i] = "" Then _ArrayDelete($aArrayFile, $i) EndIf Next $aVideos = DisplayVideos($aArrayFile) $iVideoCount = UBound($aArrayFile) -1 _ArrayDisplay($aVideos) ; Display the checked videos ;~ End of MAIN ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ; ; GUI to display Videos in checkboxes ; ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Func DisplayVideos($aArrayFile) Local $iTop = -1 Local $iLeft = -1 Local $iWidth Local $iHeight = $iVideoCount * 30 Local $iL = 10 Local $iT = 10 Local $iRow = 0 Local $aVideo Local $iA = 0, $iB = 0 Local $sFill = "" $iMMCount = UBound($aArrayFile) $iMMNewCount = $iMMCount - 1 Local $aGUICheckbox[$iMMCount] Local $aCheckedVideos[$iMMCount] ; Put the Video File Names into an Array $hGUI = GUICreate("Video Checkbox", $iLeft, $iTop, $iWidth, $iHeight) GUICtrlCreateLabel("Videos", 180, $iT) $iT = $iT + 30 ; This is a great example of using arrays to create GUI check boxes or radio buttons For $i = 0 To $iMMNewCount Step 1 $sMP4Text = $aArrayFile[$i] $aGUICheckbox[$i] = GUICtrlCreateCheckbox($sMP4Text, 30, $iT) $iT += 30 Next $idClose1 = GUICtrlCreateButton("Start", $iL, $iT) GUISetState(@SW_SHOW) ; This section reads the checkboxes and puts the video names in an array in their original position ; in case this is important (as it is to me) ; This was the toughest part to code, and I found no samples online until I saw Melba23's sample here: ; https://www.autoitscript.com/forum/topic/119843-dynamic-gui-problem/#comment-832672 ; I got this working with only a little modification. THANK YOU MELBA23 While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $idClose1 For $i = 0 To $iMMNewCount Step 1 Switch GUICtrlRead($aGUICheckbox[$i]) Case $GUI_CHECKED $aCheckedVideos[$i] = $aArrayFile[$i] Case $GUI_UNCHECKED EndSwitch Next ExitLoop EndSwitch WEnd GUIDelete($hGUI) Return $aCheckedVideos EndFunc ;==>DisplayVideos  
    • Jibberish
      By Jibberish
      Hi,
      I am maybe an intermediate AutoIt script writer, but have no experience creating GUIs.
      I have a script with two functions. One for Checkboxes and another with radio buttons. Each function creates it's own window.
      I'd like to use one window with both checkboxes and radio buttons.
      I pulled samples from AutoIt Help and other places and worked it into this: (RadioCheck still uses the example Case and MsgBoxes. I will clean this up soon)
      Func CheckOptions() ; Create a GUI with various controls. Local $hGUI = GUICreate("SGX4CP Options", 275, 250) ; Create a checkbox control. Local $iLoopCheckbox = GUICtrlCreateCheckbox("Loop", 10, 10, 185, 25) Local $iFullScreenCheckbox = GUICtrlCreateCheckbox("Fullscreen", 10, 40, 185, 25) Local $iRestartPlaybackCheckbox = GUICtrlCreateCheckbox("Restart Playback from Sleep", 10, 70, 185, 25) GUICtrlSetState($iRestartPlaybackCheckbox, $GUI_CHECKED) Local $iDisableSleepCheckbox = GUICtrlCreateCheckbox("Disable Sleep", 10, 100, 185, 25) Local $iLogCheckbox = GUICtrlCreateCheckbox("Show Log", 10, 130, 185, 25) GUICtrlSetState($iLogCheckbox, $GUI_CHECKED) Local $idClose = GUICtrlCreateButton("Next", 110, 220, 85, 25) ; Display the GUI. GUISetState(@SW_SHOW, $hGUI) ; Loop until the user exits. While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE, $idClose ExitLoop Case $iLoopCheckbox If _IsChecked($iLoopCheckbox) Then $bLoopChecked = True Else $bLoopChecked = False EndIf Case $iFullScreenCheckbox if _IsChecked($iFullScreenCheckbox) Then $bFullScreenChecked = True Else $bFullScreenChecked = False EndIf Case $iRestartPlaybackCheckbox if _IsChecked($iRestartPlaybackCheckbox) Then $bRestartPlaybackChecked = True Else $bRestartPlaybackChecked = False EndIf Case $iDisableSleepCheckbox if _IsChecked($iDisableSleepCheckbox) Then $bDisableSleepChecked = True Else $bDisableSleepChecked = False EndIf Case $iLogCheckbox if _IsChecked($iLogCheckbox) Then $bLogChecked = True Else $bLogChecked = False EndIf EndSwitch WEnd ; Delete the previous GUI and all controls. GUIDelete($hGUI) EndFunc Func RadioCheck() GUICreate("Select Test",300,180) ; will create a dialog box that when displayed is centered Local $idRadio1 = GUICtrlCreateRadio("Loop Forever", 10, 10) Local $idRadio2 = GUICtrlCreateRadio("Play each video 3 times", 10, 40) Local $idRadio3 = GUICtrlCreateRadio("Play each video separately", 10, 70) GUICtrlSetState($idRadio1, $GUI_CHECKED) Local $idClose = GUICtrlCreateButton("Start Test", 120,100) GUISetState(@SW_SHOW) Local $idMsg ; Loop until the user exits. While 1 $idMsg = GUIGetMsg() Select Case $idMsg = $GUI_EVENT_CLOSE ExitLoop Case $idMsg = $idRadio1 And BitAND(GUICtrlRead($idRadio1), $GUI_CHECKED) = $GUI_CHECKED MsgBox($MB_SYSTEMMODAL, 'Info:', 'The app will run forever, playing each video once, then looping back to the first video.') $bTestSelectForever = True Case $idMsg = $idRadio2 And BitAND(GUICtrlRead($idRadio2), $GUI_CHECKED) = $GUI_CHECKED MsgBox($MB_SYSTEMMODAL, 'Info:', 'Each video will loop 3 times then move to the next video.') $bTestSelect3Times = True Case $idMsg = $idRadio3 And BitAND(GUICtrlRead($idRadio2), $GUI_CHECKED) = $GUI_CHECKED MsgBox($MB_SYSTEMMODAL, 'Info:', 'Player opens, first video plays, player closes. Player opens, second video plays, player closes, etc.') $bTestSelectSingleVideo = True EndSelect WEnd EndFunc I would like to combine the checkbox "Loop" and the radio button $idRadio2. Radio2 requires Loop to be checked.
      I planned to remove the Loop checkbox and only enable it if Radio2 is selected.
      Can I combine these two functions into one with one window with both Checkboxes and Radio Buttons?
      Thanks
      Jibberish
    • Psyllex
      By Psyllex
      Is it possible for AutoIt to execute LALT+LSHIFT+NUMLOCK?  I've attempted the following:
       
      ;To show the desktop Send("{RWIN down}") Send("{d}") Send("{RWIN up}") WinWait(2) ;just to make sure the desktop is activated. ControlClick("", "",1[,button="left"[, clicks=2 [, x [, y]]]] ) Send("{LALT down}") Send("{CLT down}") Send("{DELETE down}") ;Send("{LSHIFT down}") ;Send("{NUMLOCK}") ;Send("{NUMLOCK}") ;Send ("{LALT up}") ;Send("{LSHIFT up}") This should bring up the MouseKeys dialog...but I'm getting nothing.  Thanks for any help!