Jump to content

Allow Edit Checkbox / Radio Button that shows other buttons


Recommended Posts

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 :)

Link to post
Share on other sites

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
Link to post
Share on other sites

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
Link to post
Share on other sites

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.

Link to post
Share on other sites

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

Link to post
Share on other sites

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

 

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
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By abberration
      Software Installer
      Version: 2.0
      It's been been a long year, but I finally got some time to rework this project. I re-wrote everything from scratch because the old version was getting too complicated with so many options and sub-menus. This new version is much easier to use and I have been testing for a few days and it seems very stable.
      For those who are new to this software, it helps you install software silently/unattended. This new version tries to determine the silent switch automatically. You can also re-organize the order in which the software installs by dragging & dropping them in the listview. It now supports creating profiles and checks for missing software (and automatically unchecks them, so it does not attempt to install non-existent software). One feature I included was because I have seen several people on Youtube talk about disliking bright screens at night. So, now you can choose from a few color theme (half of them are dark). I dabbled a bit more into GDI+ to draw a few things and show my logo with a transparent background (hint: I'm not good at GDI+).
      Under the Help menu, you will find a User Guide, which goes through most of it's features. I included a new icon if you want to use when you compile the script (in the Assets > Misc folder).
      If you have questions, comments or suggestions, all are welcome. Hope you enjoy!
      Here it is in action:

       
      Software_Installer_2.0.zip
    • By rcmaehl
      A UDF to connect and control Five9 on the Local Network via it's provided HTTP API
       
      THIS UDF IS STILL IN TESTING
       
      Current Features:
      Agent Ready
      * Contains most functions needed to control Agent Status  
      PLANNED Features:
      Heavyweight
      * Control most Five9 API functions
      * Full Control over own Status as well as Supervisor functionality
        Helpful Premade Examples Files
      * Examples for almost every function
      * Premade CUI and GUI clients
        Ready for all users, beginner and up
      * Detailed Error Reporting to help pin-point problems
      * Thorough parameter checking to prevent accidental script crashes  
      Support:
      Support for this UDF can be obtained in my Discord Server
    • By rcmaehl
      A UDF to connect and control Cisco Finesse on the Local Network via it's provided HTTP API
       
      Current Features:
      Heavyweight
      * Large feature set, containing most Finesse Desktop API functions  
      PLANNED Features:
      Heavyweight
      * Control over own Status as well as Supervisor functionality
        Helpful Premade Examples Files
      * Examples for almost every function
      * Premade CUI and GUI clients 
        Ready for all users, beginner and up
      * Detailed Error Reporting to help pin-point problems
      * Thorough parameter checking to prevent accidental script crashes  
      Support:
      Support for this UDF can be obtained in my Discord Server
    • By Zobu
      Hey Guys,
      I want to add a new checkbox with its own variable every time the add button is clicked.
      The added checkboxes should remain when I close the window or exit the script and when I reopen I should be able to add new checkboxes aswell.
      here is what I have so far..
      #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <StaticConstants.au3> #include <EditConstants.au3> #include <MsgBoxConstants.au3> #include <GuiButton.au3> $test = GUICreate("adding test", 475, 345, 500, 175) $Check1 = GUICtrlCreateCheckbox("Checkbox 1", 15, 25, 300, 25) $Button = GUICtrlCreateButton("Add", 365, 25, 90, 20) $Check2 = GUICtrlCreateCheckbox("Checkbox 2", 15, 50, 300, 25) $Check3 = GUICtrlCreateCheckbox("Checkbox 3", 15, 75, 300, 25) GUICtrlSetState($Check2, $GUI_HIDE) GUICtrlSetState($Check3, $GUI_HIDE) GUISetState(@SW_SHOW) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ; Exit Case $Button GUICtrlSetPos($Check2, 15, 50, 300, 25) GUICtrlSetState($Check2, $GUI_SHOW) Case $Button GUICtrlSetPos($Check3, 15, 75, 300, 25) GUICtrlSetState($Check3, $GUI_SHOW) EndSwitch WEnd  
    • By WindIt
      Hi, 
      I have a set of excel docs 1& 2
      1) In Excel 1 i have a fixed column called dimensionId that contains list of dimensionid's with in between empty cells.
      Here, For each dimesionId, i need to check corresponding columns of L,M,N ,O(senior, mid, junior, student) & check If they contain letter Y (Open excel 2) and if empty ignore,check next.
      I need to loop through the entire column of dimensionId one by one, please help me proceed with the logic.
      2) If letter Y exists, open excel 2 and check if same dimesionId exists in column A.
      New to autoit excel automation, Help me with logic to execute this.
      #include <Excel.au3>
      Global $oExcel = _Excel_Open()
      Global $oWorkbook = _Excel_BookOpen($oExcel, "D:\yta\Trial concept dimensions list.xlsx")
      Local $read1 = _Excel_RangeRead ($oWorkbook,Default,"C3")
      MsgBox(0,"",$read1)
      Attached exce 1 doc.
       
       
      exl1.xlsx exl2.xlsx
×
×
  • Create New...