Jump to content
Sign in to follow this  
Cirusnb

Set Checked / un-checked value according to Registry value

Recommended Posts

Hi all, first post here ever, I'm working on a project, Helpdesk type tool.   I'm trying to set the State (Checked, Unchecked) of check boxes, and Or button, (a Toggle). this would be set by determining the Value of Certain Reg keys,    here is my phone below. $PC_select_data is the Computer Name so you could replace it with "@Computer".  

I looked and looked and couldn't find whats wrong. 

I'm new to Autoit somewhat. 

I may be complicating things by assigning Arrays for my controls, but I think this will work. 

the first part is fine, I get a Computer from a list (that I got from AD with Water's Awesome UDF)

please not I'm using onevent also, well. the UDF OnEventA that allows upto 4 ByVal or Ref's 

I get the Value $PC_selected_data

return the value to the Function

 I send a test Key with Regread, if I can't read it I launch sc.exe to run Remote Reg.

Then I read 5 values from the Remote Reg.   I assigned a Array of those Values and Also Assigned a Array of my CheckBoxes also.

Now my logic, if the Value of the REG key is "" (blank)   then UnCheck all the check boxes, else, Check them. Now, to make this more efficient, I put the Controls in an Array, of the Same Lenth. now here is the think, I run my script, it runs fine, finds the value, and Un-checks all of the check boxes, now if I go change one of the REG values, it does not Check them. because of the Logic for the For Loop.   I would have figured that If the first value of the Array $Run_as_MSIscheck =  somevalue that it would see that as a "ELSE" and Check the box. Since the For loop contains the If - then- Else, but I Understand that it only runs the first Block, IF the condition is True.  So I guess Am I totally off track? 

 

Func Check_PC_status($PC_select_Data)
local $pingPC
local $regtemp = ""
local $x = ""
local $Run_as_MSIcheck,$Run_as_CMDcheck,$Run_as_BATCheck,$Run_as_REGcheck
local $RUNas_chks[4] = [$MSI_runAs_chk,$CMD_runAs_chk,$BAT_runAs_chk,$REG_runAs_chk]
local $runAS_function_check[4] = [$Run_as_MSIcheck,$Run_as_CMDcheck,$Run_as_BATCheck,$Run_as_REGcheck]

;~ @error:  
;~ 1 = Host is offline
;~ 2 = Host is unreachable
;~ 3 = Bad destination
;~ 4 = Other errors

;Sends Ping to pc to see if its live or not.
    
$pingPC = ping($PC_select_Data,2000)
;if Ping has returned a good value, NOT 0.  check current status of the following lines in registry. checkes for RunAS for CMD/MSI/BAT and Remote REG keys. checks for SMS prompt control.  
if $pingPC Then  
                
;tries to read a key from the registry, and returns its value, if its blank,
$regtemp = RegRead("\\" & $PC_select_Data & "\HKLM\SOFTWARE\Microsoft\SMS\Client\Client Components\Remote Control", "Permission Required")
ConsoleWrite("Sending test Key, is set to: " & $regtemp & @CRLF) 

;~error: 3 = Bad destination
if @error = 3  or $regtemp = "" Then
    ConsoleWrite("Unable to determine status of remote registry!!!" & @CRLF & "Trying to start Remote Registry.... via Service Control Manager" & @CRLF )

RunWait(@SystemDir & '\sc.exe \\' & $PC_select_Data & ' start RemoteRegistry',"","")
    if Not @error then 
    ConsoleWrite("Remote Registry loaded" & @CRLF & @CRLF)
    EndIf
EndIf
        
            TCPStartup()
                $IPadd = TCPNameToIP ($PC_select_Data)
                ConsoleWrite($IPadd & @CRLF)
            TCPShutdown()
                
            ConsoleWrite("ping Success: " & $pingPC & "ms" & @CRLF)
            
            $Sccm_PROMPTcheck = RegRead("\\" & $PC_select_Data & "\HKLM\SOFTWARE\Microsoft\SMS\Client\Client Components\Remote Control", "Permission Required")
            $Run_as_MSIcheck =  RegRead("\\" & $PC_select_Data & "\HKEY_CLASSES_ROOT\Msi.Package\shell\runas\command", "")  ; MSI access Check
            $Run_as_CMDcheck =  RegRead("\\" & $PC_select_Data & "\HKEY_CLASSES_ROOT\cmdfile\shell\runas\command", "")  ; CMS access Check
            $Run_as_BATCheck =  RegRead("\\" & $PC_select_Data & "\HKEY_CLASSES_ROOT\batfile\shell\runas\command", "")  ; BAT access Check
            $Run_as_REGcheck =  RegRead("\\" & $PC_select_Data & "\HKEY_CLASSES_ROOT\regfile\shell\runas\command", "")  ; REG access Check
            
            ConsoleWrite("SMS Client status: " & $Sccm_Promptcheck & @CRLF & "MSI RunAS Status: " & $Run_as_MSIcheck & @CRLF & "CMD RunAs Status: " & $Run_as_CMDcheck & @CRLF & "BAT RunAs Status: " & $Run_as_BATCheck & @CRLF & "REG RunAs Status: " & $Run_as_REGcheck & @CRLF & @CRLF)
    
            
    
        for $x = 0 to UBound($runAS_function_check) -1
            ConsoleWrite("Count: " & $x & @CRLF)
            
            if $runAS_function_check[$x] = "" Then
                                
                $test1 = guictrlread($RUNas_chks[$x])
                ConsoleWrite("B4 " & $test1 & @CRLF)
                
                GUICtrlSetState($RUNas_chks[$x],$GUI_UNCHECKED)
            
                $test2 =  guictrlread($RUNas_chks[$x])
                ConsoleWrite("After " & $test2 & @CRLF)
            
            Else
                
                    GUICtrlSetState($RUNas_chks[$x],$GUI_CHECKED)
                        
        EndIf
            
            
        Next
    
    Else
        
    ConsoleWrite($PC_select_Data & " is Not reachable" & @CRLF & @CRLF)
    
    
    EndIf
    
    
Endfunc

any help is appreciated. 

Edited by Cirusnb

Share this post


Link to post
Share on other sites

It's a little confusing.  I don't see any checkboxes in your snippet above.  I see your arrays which you are filling with zeros.  

I think know where you're going with this, but the execution isn't quite right.  

When you are doing your RegReads to update the *check variables, are you expecting that the arrays are being updated?  It doesn't work that way.  

I'd recommend something like this (apologies if this isn't the direction you wanted to take and this just added confusion)
 

;...
;Create Enumerated Variables - Human Friendly Array Indexes ;)
Local Enum $Run_as_MSIcheck, $Run_as_CMDcheck, $Run_as_BATCheck, $Run_as_REGcheck
;Create Array
Local $RUNas_chks[4]
;...
;Read Registry Values into Array
$RUNas_chks[$Run_as_MSIcheck] =  RegRead("\\" & $PC_select_Data & "\HKEY_CLASSES_ROOT\Msi.Package\shell\runas\command", "")  ; MSI access Check
$RUNas_chks[$Run_as_CMDcheck] =  RegRead("\\" & $PC_select_Data & "\HKEY_CLASSES_ROOT\cmdfile\shell\runas\command", "")  ; CMS access Check
$RUNas_chks[$Run_as_BATCheck] =  RegRead("\\" & $PC_select_Data & "\HKEY_CLASSES_ROOT\batfile\shell\runas\command", "")  ; BAT access Check
$RUNas_chks[$Run_as_REGcheck] =  RegRead("\\" & $PC_select_Data & "\HKEY_CLASSES_ROOT\regfile\shell\runas\command", "")  ; REG access Check
;...etc.

 


Share this post


Link to post
Share on other sites

Like this?
 

Global $hForm = GUICreate("PC Status", 340, 90)
GUICtrlCreateLabel("PC: ", 24, 16, 32, 17)
Global $cSMS = GUICtrlCreateCheckbox("SMS", 16, 48, 46, 17)
Global $cMSI = GUICtrlCreateCheckbox("MSI", 64, 48, 46, 17)
Global $cCMD = GUICtrlCreateCheckbox("CMD", 112, 48, 46, 17)
Global $cBAT = GUICtrlCreateCheckbox("BAT", 160, 48, 46, 17)
Global $cREG = GUICtrlCreateCheckbox("REG", 208, 48, 46, 17)
Global $PC = GUICtrlCreateInput(@IPAddress1, 56, 16, 185, 21)
Global $CheckPC = GUICtrlCreateButton("Check", 256, 16, 73, 49)
Global $cStatus = GUICtrlCreateLabel("", 8, 72, 324, 17, BitOR(0x1, 0x0200))
GUISetState(@SW_SHOW)

While 1
    Switch GUIGetMsg()
        Case -3
            Exit
        Case $CheckPC
            _CheckPC_Status(GUICtrlRead($PC))
    EndSwitch
    Sleep(10)
WEnd

Func _CheckPC_Status($sPC_Name)
    If StringStripWS($sPC_Name, 9) = "" Then Return SetError(1, 0, 0)
    Local $Sccm_PROMPTcheck, $sMSIcheck, $sCMDcheck, $sBATCheck, $sREGcheck, $sIPAddress, $regtemp, $iPID, $sOutput
    Local $pingPC = Ping($sPC_Name, 2000)
    If $pingPC Then
        $regtemp = RegRead("\\" & $sPC_Name & "\HKLM\SOFTWARE\Microsoft\SMS\Client\Client Components\Remote Control", "Permission Required")
        If @error = 3 Or $regtemp = "" Then
            ConsoleWrite("!Unable to determine status of remote registry!!!" & @CRLF & "-Trying to start Remote Registry.... via Service Control Manager" & @CRLF)
            $iPID = Run('"' & @SystemDir & '\sc.exe" ' & "\\" & $sPC_Name & ' start RemoteRegistry', "", @SW_HIDE, 8)
            ProcessWaitClose($iPID)
            $sOutput = StdoutRead($iPID)
            If StringInStr($sOutput, "FAILED") Then
                GUICtrlSetData($cStatus, "Can't load Remote Registry !")
                ConsoleWrite("! Can't load Remote Registry !" & @CRLF)
                Return SetError(2, 0, 0)
            Else
                GUICtrlSetData($cStatus, "Remote Registry loaded")
                ConsoleWrite("+Remote Registry loaded" & @CRLF)
            EndIf
        EndIf
        TCPStartup()
        $sIPAddress = TCPNameToIP($sPC_Name)
        ConsoleWrite("!IP: " & $sIPAddress & @CRLF)
        TCPShutdown()
        ConsoleWrite("-Ping Success: " & $pingPC & "ms" & @CRLF)
        $Sccm_PROMPTcheck = RegRead("\\" & $sPC_Name & "\HKLM\SOFTWARE\Microsoft\SMS\Client\Client Components\Remote Control", "Permission Required")
        $sMSIcheck = RegRead("\\" & $sPC_Name & "\HKEY_CLASSES_ROOT\Msi.Package\shell\runas\command", "")
        $sCMDcheck = RegRead("\\" & $sPC_Name & "\HKEY_CLASSES_ROOT\cmdfile\shell\runas\command", "")
        $sBATCheck = RegRead("\\" & $sPC_Name & "\HKEY_CLASSES_ROOT\batfile\shell\runas\command", "")
        $sREGcheck = RegRead("\\" & $sPC_Name & "\HKEY_CLASSES_ROOT\regfile\shell\runas\command", "")
        RegWrite("\\" & $sPC_Name & "\HKEY_CLASSES_ROOT\regfile\shell\runas\command", "", "REG_DWORD", 1)
        _Check($Sccm_PROMPTcheck, $cSMS)
        _Check($sMSIcheck, $cMSI)
        _Check($sCMDcheck, $cCMD)
        _Check($sBATCheck, $cBAT)
        _Check($sREGcheck, $cREG)
        ConsoleWrite("+SMS Client status: " & $Sccm_PROMPTcheck & @CRLF & "+MSI RunAS Status: " & $sMSIcheck & @CRLF & "+CMD RunAs Status: " & $sCMDcheck & @CRLF & "+BAT RunAs Status: " & $sBATCheck & @CRLF & "+REG RunAs Status: " & $sREGcheck & @CRLF & @CRLF)
        GUICtrlSetData($cStatus, "PC Status check done!")
    Else
        ConsoleWrite($sPC_Name & " is Not reachable" & @CRLF & @CRLF)
        SetError(1, 0, 0)
    EndIf
EndFunc   ;==>_CheckPC_Status

Func _Check($Data, $Control)
    If StringStripWS($Data, 8) <> "" Then
        GUICtrlSetState($Control, 1)
    Else
        GUICtrlSetState($Control, 4)
    EndIf
EndFunc   ;==>_Check

 


Regards,
 

Share this post


Link to post
Share on other sites
On 5/19/2016 at 10:47 PM, Trong said:

awesome, thank you, I"m using ONevent tho. I really appreciate what you did the error checking for the Service Control.  I'll update my code and see if I can implement the check feature using Onevent (I am using 

 also, I"m also running AutoITstudio  for the GUI in a separate file.  Sorry for not including the GUI.  

I'll keep you posted :) thanks again. 

On 5/19/2016 at 10:47 PM, Trong said:
Global $hForm = GUICreate("PC Status", 340, 90)
GUICtrlCreateLabel("PC: ", 24, 16, 32, 17)
Global $cSMS = GUICtrlCreateCheckbox("SMS", 16, 48, 46, 17)
Global $cMSI = GUICtrlCreateCheckbox("MSI", 64, 48, 46, 17)
Global $cCMD = GUICtrlCreateCheckbox("CMD", 112, 48, 46, 17)
Global $cBAT = GUICtrlCreateCheckbox("BAT", 160, 48, 46, 17)
Global $cREG = GUICtrlCreateCheckbox("REG", 208, 48, 46, 17)
Global $PC = GUICtrlCreateInput(@IPAddress1, 56, 16, 185, 21)
Global $CheckPC = GUICtrlCreateButton("Check", 256, 16, 73, 49)
Global $cStatus = GUICtrlCreateLabel("", 8, 72, 324, 17, BitOR(0x1, 0x0200))
GUISetState(@SW_SHOW)

While 1
    Switch GUIGetMsg()
        Case -3
            Exit
        Case $CheckPC
            _CheckPC_Status(GUICtrlRead($PC))
    EndSwitch
    Sleep(10)
WEnd

Func _CheckPC_Status($sPC_Name)
    If StringStripWS($sPC_Name, 9) = "" Then Return SetError(1, 0, 0)
    Local $Sccm_PROMPTcheck, $sMSIcheck, $sCMDcheck, $sBATCheck, $sREGcheck, $sIPAddress, $regtemp, $iPID, $sOutput
    Local $pingPC = Ping($sPC_Name, 2000)
    If $pingPC Then
        $regtemp = RegRead("\\" & $sPC_Name & "\HKLM\SOFTWARE\Microsoft\SMS\Client\Client Components\Remote Control", "Permission Required")
        If @error = 3 Or $regtemp = "" Then
            ConsoleWrite("!Unable to determine status of remote registry!!!" & @CRLF & "-Trying to start Remote Registry.... via Service Control Manager" & @CRLF)
            $iPID = Run('"' & @SystemDir & '\sc.exe" ' & "\\" & $sPC_Name & ' start RemoteRegistry', "", @SW_HIDE, 8)
            ProcessWaitClose($iPID)
            $sOutput = StdoutRead($iPID)
            If StringInStr($sOutput, "FAILED") Then
                GUICtrlSetData($cStatus, "Can't load Remote Registry !")
                ConsoleWrite("! Can't load Remote Registry !" & @CRLF)
                Return SetError(2, 0, 0)
            Else
                GUICtrlSetData($cStatus, "Remote Registry loaded")
                ConsoleWrite("+Remote Registry loaded" & @CRLF)
            EndIf
        EndIf
        TCPStartup()
        $sIPAddress = TCPNameToIP($sPC_Name)
        ConsoleWrite("!IP: " & $sIPAddress & @CRLF)
        TCPShutdown()
        ConsoleWrite("-Ping Success: " & $pingPC & "ms" & @CRLF)
        $Sccm_PROMPTcheck = RegRead("\\" & $sPC_Name & "\HKLM\SOFTWARE\Microsoft\SMS\Client\Client Components\Remote Control", "Permission Required")
        $sMSIcheck = RegRead("\\" & $sPC_Name & "\HKEY_CLASSES_ROOT\Msi.Package\shell\runas\command", "")
        $sCMDcheck = RegRead("\\" & $sPC_Name & "\HKEY_CLASSES_ROOT\cmdfile\shell\runas\command", "")
        $sBATCheck = RegRead("\\" & $sPC_Name & "\HKEY_CLASSES_ROOT\batfile\shell\runas\command", "")
        $sREGcheck = RegRead("\\" & $sPC_Name & "\HKEY_CLASSES_ROOT\regfile\shell\runas\command", "")
        RegWrite("\\" & $sPC_Name & "\HKEY_CLASSES_ROOT\regfile\shell\runas\command", "", "REG_DWORD", 1)
        _Check($Sccm_PROMPTcheck, $cSMS)
        _Check($sMSIcheck, $cMSI)
        _Check($sCMDcheck, $cCMD)
        _Check($sBATCheck, $cBAT)
        _Check($sREGcheck, $cREG)
        ConsoleWrite("+SMS Client status: " & $Sccm_PROMPTcheck & @CRLF & "+MSI RunAS Status: " & $sMSIcheck & @CRLF & "+CMD RunAs Status: " & $sCMDcheck & @CRLF & "+BAT RunAs Status: " & $sBATCheck & @CRLF & "+REG RunAs Status: " & $sREGcheck & @CRLF & @CRLF)
        GUICtrlSetData($cStatus, "PC Status check done!")
    Else
        ConsoleWrite($sPC_Name & " is Not reachable" & @CRLF & @CRLF)
        SetError(1, 0, 0)
    EndIf
EndFunc   ;==>_CheckPC_Status

Func _Check($Data, $Control)
    If StringStripWS($Data, 8) <> "" Then
        GUICtrlSetState($Control, 1)
    Else
        GUICtrlSetState($Control, 4)
    EndIf
EndFunc   ;==>_Check

 

 

Share this post


Link to post
Share on other sites
On 5/19/2016 at 10:47 PM, Trong said:

awesome, thank you, I"m using ONevent tho. I really appreciate what you did the error checking for the Service Control.  I'll update my code and see if I can implement the check feature using Onevent (I am using 

 also, I"m also running AutoITstudio  for the GUI in a separate file.  Sorry for not including the GUI.  

I'll keep you posted :) thanks again. 

On 5/19/2016 at 10:47 PM, Trong said:
Global $hForm = GUICreate("PC Status", 340, 90)
GUICtrlCreateLabel("PC: ", 24, 16, 32, 17)
Global $cSMS = GUICtrlCreateCheckbox("SMS", 16, 48, 46, 17)
Global $cMSI = GUICtrlCreateCheckbox("MSI", 64, 48, 46, 17)
Global $cCMD = GUICtrlCreateCheckbox("CMD", 112, 48, 46, 17)
Global $cBAT = GUICtrlCreateCheckbox("BAT", 160, 48, 46, 17)
Global $cREG = GUICtrlCreateCheckbox("REG", 208, 48, 46, 17)
Global $PC = GUICtrlCreateInput(@IPAddress1, 56, 16, 185, 21)
Global $CheckPC = GUICtrlCreateButton("Check", 256, 16, 73, 49)
Global $cStatus = GUICtrlCreateLabel("", 8, 72, 324, 17, BitOR(0x1, 0x0200))
GUISetState(@SW_SHOW)

While 1
    Switch GUIGetMsg()
        Case -3
            Exit
        Case $CheckPC
            _CheckPC_Status(GUICtrlRead($PC))
    EndSwitch
    Sleep(10)
WEnd

Func _CheckPC_Status($sPC_Name)
    If StringStripWS($sPC_Name, 9) = "" Then Return SetError(1, 0, 0)
    Local $Sccm_PROMPTcheck, $sMSIcheck, $sCMDcheck, $sBATCheck, $sREGcheck, $sIPAddress, $regtemp, $iPID, $sOutput
    Local $pingPC = Ping($sPC_Name, 2000)
    If $pingPC Then
        $regtemp = RegRead("\\" & $sPC_Name & "\HKLM\SOFTWARE\Microsoft\SMS\Client\Client Components\Remote Control", "Permission Required")
        If @error = 3 Or $regtemp = "" Then
            ConsoleWrite("!Unable to determine status of remote registry!!!" & @CRLF & "-Trying to start Remote Registry.... via Service Control Manager" & @CRLF)
            $iPID = Run('"' & @SystemDir & '\sc.exe" ' & "\\" & $sPC_Name & ' start RemoteRegistry', "", @SW_HIDE, 8)
            ProcessWaitClose($iPID)
            $sOutput = StdoutRead($iPID)
            If StringInStr($sOutput, "FAILED") Then
                GUICtrlSetData($cStatus, "Can't load Remote Registry !")
                ConsoleWrite("! Can't load Remote Registry !" & @CRLF)
                Return SetError(2, 0, 0)
            Else
                GUICtrlSetData($cStatus, "Remote Registry loaded")
                ConsoleWrite("+Remote Registry loaded" & @CRLF)
            EndIf
        EndIf
        TCPStartup()
        $sIPAddress = TCPNameToIP($sPC_Name)
        ConsoleWrite("!IP: " & $sIPAddress & @CRLF)
        TCPShutdown()
        ConsoleWrite("-Ping Success: " & $pingPC & "ms" & @CRLF)
        $Sccm_PROMPTcheck = RegRead("\\" & $sPC_Name & "\HKLM\SOFTWARE\Microsoft\SMS\Client\Client Components\Remote Control", "Permission Required")
        $sMSIcheck = RegRead("\\" & $sPC_Name & "\HKEY_CLASSES_ROOT\Msi.Package\shell\runas\command", "")
        $sCMDcheck = RegRead("\\" & $sPC_Name & "\HKEY_CLASSES_ROOT\cmdfile\shell\runas\command", "")
        $sBATCheck = RegRead("\\" & $sPC_Name & "\HKEY_CLASSES_ROOT\batfile\shell\runas\command", "")
        $sREGcheck = RegRead("\\" & $sPC_Name & "\HKEY_CLASSES_ROOT\regfile\shell\runas\command", "")
        RegWrite("\\" & $sPC_Name & "\HKEY_CLASSES_ROOT\regfile\shell\runas\command", "", "REG_DWORD", 1)
        _Check($Sccm_PROMPTcheck, $cSMS)
        _Check($sMSIcheck, $cMSI)
        _Check($sCMDcheck, $cCMD)
        _Check($sBATCheck, $cBAT)
        _Check($sREGcheck, $cREG)
        ConsoleWrite("+SMS Client status: " & $Sccm_PROMPTcheck & @CRLF & "+MSI RunAS Status: " & $sMSIcheck & @CRLF & "+CMD RunAs Status: " & $sCMDcheck & @CRLF & "+BAT RunAs Status: " & $sBATCheck & @CRLF & "+REG RunAs Status: " & $sREGcheck & @CRLF & @CRLF)
        GUICtrlSetData($cStatus, "PC Status check done!")
    Else
        ConsoleWrite($sPC_Name & " is Not reachable" & @CRLF & @CRLF)
        SetError(1, 0, 0)
    EndIf
EndFunc   ;==>_CheckPC_Status

Func _Check($Data, $Control)
    If StringStripWS($Data, 8) <> "" Then
        GUICtrlSetState($Control, 1)
    Else
        GUICtrlSetState($Control, 4)
    EndIf
EndFunc   ;==>_Check

 

 

Share this post


Link to post
Share on other sites
On 5/18/2016 at 8:03 PM, spudw2k said:

It's a little confusing.  I don't see any checkboxes in your snippet above.  I see your arrays which you are filling with zeros.  

I think know where you're going with this, but the execution isn't quite right.  

When you are doing your RegReads to update the *check variables, are you expecting that the arrays are being updated?  It doesn't work that way.  

I'd recommend something like this (apologies if this isn't the direction you wanted to take and this just added confusion)
 

;...
;Create Enumerated Variables - Human Friendly Array Indexes ;)
Local Enum $Run_as_MSIcheck, $Run_as_CMDcheck, $Run_as_BATCheck, $Run_as_REGcheck
;Create Array
Local $RUNas_chks[4]
;...
;Read Registry Values into Array
$RUNas_chks[$Run_as_MSIcheck] =  RegRead("\\" & $PC_select_Data & "\HKEY_CLASSES_ROOT\Msi.Package\shell\runas\command", "")  ; MSI access Check
$RUNas_chks[$Run_as_CMDcheck] =  RegRead("\\" & $PC_select_Data & "\HKEY_CLASSES_ROOT\cmdfile\shell\runas\command", "")  ; CMS access Check
$RUNas_chks[$Run_as_BATCheck] =  RegRead("\\" & $PC_select_Data & "\HKEY_CLASSES_ROOT\batfile\shell\runas\command", "")  ; BAT access Check
$RUNas_chks[$Run_as_REGcheck] =  RegRead("\\" & $PC_select_Data & "\HKEY_CLASSES_ROOT\regfile\shell\runas\command", "")  ; REG access Check
;...etc.

 

I might use your Array idea, the GUI are in the separate file, I forgot to include those. 

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
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • 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 joseLB
      Hi
      This piece of code creates and reads OK a key at  "HKEY_LOCAL_MACHINE" and can be changed for a key at "HKEY_CURRENT_USER"
      $sta= RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor", "wav", "REG_SZ", "5555") MsgBox(4096,"wrote", $sta &@cr& @error) $zz= RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor", "wav") MsgBox(4096,"readed","="&$zz &@cr& @error) Exit With  HKEY_CURRENT_USER, in RegEdit we can see the created key, and we can create the key by hand/RegEdit and everything Works OK.
      At  HKEY_LOCAL_MACHINE we can´t see the created key above  thru RegEdit, but it Works (even not seeing, I can read). But  if I create "by hand"/RegEdit  the key,  it can´t read it with   $zz= RegRead  ("HKEY_LOCAL_MACHINE.... above.
      I´m the PC´s WIN.7 administrator. Even so I ran RegEdit as administrator and also the compiled AU3 and also plain. No changes.
      edit: even if Try   "HKEY_LOCAL_MACHINE\SOFTWARE\AAA", "wav", the same holds true.
      $sta= RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\AAA", "wav", "REG_SZ", "4444") MsgBox(4096,"wrote", $sta &@cr& @error) $zz= RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\AAA", "wav") MsgBox(4096,"readed","="&$zz &@cr& @error) Exit Seems that it creates this key at another place.... I can read the above value ("4444"), even after a boot, even the key not showing in regedit. And if I create it by hand key AAA/wav with a distinct value (666), t, it continues Reading the old value = 444.
      Thanks
      Jose
       
    • By ozymandius257
      I'm trying to check the status of the checkbox for sharing a folder that you see when you right-click on a  folder, go to the sharing tab, then click on Advanced Sharing.

      The check box is labelled Share this folder, and looking at it using AutoIt window info, I get the following information..
      >>>> Control <<<<
      Class:    Button
      Instance:    1
      ClassnameNN:    Button1
      Name:    
      Advanced (Class):    [CLASS:Button; INSTANCE:1]
      ID:    1020
      Text:    &Share this folder
      Position:    15, 16
      Size:    306, 13
      ControlClick Coords:    57, 4
      Style:    0x50010003
      ExStyle:    0x00000004
      Handle:    0x0000000000420A52
      I'm using the following code..
      If ControlCommand("Sharing","","[CLASS:Button; INSTANCE:1]","IsChecked","") = 0 Then
          MsgBox(0, "", "not checked")
      Else
          MsgBox(0, "", "checked")
      EndIf
      But this insists the check box isn't checked when it is.  I have also tried ControlCommand("Sharing","","[ID:1020]","IsChecked","") and ControlCommand("Sharing","","Share this folder","IsChecked","") and ControlCommand("Sharing","","&Share this folder","IsChecked",""), with no joy.
       
      Any ideas?
    • By Elrond5
      So I want to remap Capslock to Ctrl using Autoit
      ;3A00 = Caps ;1D00 = Ctrl RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout","Scancode Map","REG_BINARY","000000000000000002000000E0473A0000000000") However it isn't doing anything. And I have no idea why my code doesn't work.
×
×
  • Create New...