jonez34 Posted December 23, 2006 Posted December 23, 2006 I am trying to write up a GUI that allows registry modification. I have posted what I have so far but I am going to add way more check boxes and a few input boxes so I need to know if there is a way to replace all the If Then Elseif statements that I am going to use to save some typing. I have been looking in the help file about the case command but don't know if that is going to help me. For the code below I am using the $gui_unchecked and $gui_checked options so there are going to be a ton of If statements, is there any other way to do these? Thanks in advance. expandcollapse popup#include <guiconstants.au3> #NoTrayIcon GUICreate ("registry") GUISetState (@SW_SHOW) $applybutton = GUICtrlCreateButton ("Apply",10,360,60) $cancelbutton = GUICtrlCreateButton ("Cancel",70,360,60) $closebutton = GUICtrlCreateButton ("Close",320,360,60) $rclickdesk = GUICtrlCreateCheckbox ("Disable Right Click On Desktop",10,40) $rclickstart = GUICtrlCreateCheckbox ("Disable Right Click On Start Bar",10,60) $removeicons = GUICtrlCreateCheckbox ("Remove All Icons From Taskbar",10,80) While 1 $msg = GUIGetMsg () if $msg = $GUI_EVENT_CLOSE Or $msg = $cancelbutton Or $msg = $closebutton Then ExitLoop EndIf if $msg = $applybutton Then If GUICtrlRead ($rclickdesk) = $GUI_CHECKED Then RegWrite ("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer","NoViewContextMenu","REG_DWORD","1") Elseif GUICtrlRead ($rclickdesk) = $GUI_UNCHECKED Then RegDelete ("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer","NoViewContextMenu") EndIf If GUICtrlRead ($rclickstart) = $GUI_CHECKED Then RegWrite ("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer","NoTrayContextMenu","REG_DWORD","1") ElseIf GUICtrlRead ($rclickstart) = $GUI_UNCHECKED Then RegDelete ("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer","NoTrayContextMenu") Elseif GUICtrlRead ($removeicons) = $GUI_CHECKED Then RegWrite ("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer","NoViewTrayItems","REG_DWORD","1") EndIf EndIf ;If GUICtrlRead ($removeicons) = $GUI_CHECKED Then ;RegWrite ("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer","NoTrayItemsDisplay","REG_DWORD","1") ;ElseIf GUICtrlRead ($removeicons) = $GUI_UNCHECKED Then ;RegDelete ("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer","NoTrayItemsDisplay") ;EndIf WEnd
Valuater Posted December 24, 2006 Posted December 24, 2006 maybe... expandcollapse popup#include <guiconstants.au3> #NoTrayIcon GUICreate("registry") $applybutton = GUICtrlCreateButton("Apply", 10, 360, 60) $cancelbutton = GUICtrlCreateButton("Cancel", 70, 360, 60) $closebutton = GUICtrlCreateButton("Close", 320, 360, 60) $rclickdesk = GUICtrlCreateCheckbox("Disable Right Click On Desktop", 10, 40) $rclickstart = GUICtrlCreateCheckbox("Disable Right Click On Start Bar", 10, 60) $removeicons = GUICtrlCreateCheckbox("Remove All Icons From Taskbar", 10, 80) GUISetState(@SW_SHOW) While 1 $msg = GUIGetMsg() If $msg = $GUI_EVENT_CLOSE Or $msg = $cancelbutton Or $msg = $closebutton Then ExitLoop If $msg = $applybutton Then If _IsChecked($rclickdesk) Then RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer", "NoViewContextMenu", "REG_DWORD", "1") Else RegDelete("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer", "NoViewContextMenu") EndIf If _IsChecked($rclickstart) Then RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer", "NoTrayContextMenu", "REG_DWORD", "1") Else RegDelete("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer", "NoTrayContextMenu") EndIf If _IsChecked($removeicons) Then RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer", "NoViewTrayItems", "REG_DWORD", "1") EndIf EndIf ;If GUICtrlRead ($removeicons) = $GUI_CHECKED Then ;RegWrite ("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer","NoTrayItemsDisplay","REG_DWORD","1") ;ElseIf GUICtrlRead ($removeicons) = $GUI_UNCHECKED Then ;RegDelete ("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer","NoTrayItemsDisplay") ;EndIf WEnd Func _IsChecked($control) Return BitAND(GUICtrlRead($control), $GUI_CHECKED) = $GUI_CHECKED EndFunc ;==>_IsChecked 8)
Zedna Posted December 24, 2006 Posted December 24, 2006 Use two dimensional array containing checkbox's control ID and registry address Make For Loop for creating checkboxes and also For Loop for reading if it's checked an if so then use RegDelete/RegWrite with value from arry. Resources UDF ResourcesEx UDF AutoIt Forum Search
Zedna Posted December 24, 2006 Posted December 24, 2006 (edited) I made it for you expandcollapse popup#NoTrayIcon #include <guiconstants.au3> Global $a_ctrl[3][2] Global $reg_key = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" GUICreate ("registry") $applybutton = GUICtrlCreateButton ("Apply",10,360,60) $cancelbutton = GUICtrlCreateButton ("Cancel",70,360,60) $closebutton = GUICtrlCreateButton ("Close",320,360,60) $a_ctrl[0][0] = GUICtrlCreateCheckbox ("Disable Right Click On Desktop",10,40) $a_ctrl[0][1] = "NoViewContextMenu" $a_ctrl[1][0]= GUICtrlCreateCheckbox ("Disable Right Click On Start Bar",10,60) $a_ctrl[1][1] = "NoTrayContextMenu" $a_ctrl[2][0] = GUICtrlCreateCheckbox ("Remove All Icons From Taskbar",10,80) $a_ctrl[2][1] = "NoViewTrayItems" GUISetState (@SW_SHOW) While 1 $msg = GUIGetMsg () if $msg = $GUI_EVENT_CLOSE Or $msg = $cancelbutton Or $msg = $closebutton Then ExitLoop if $msg = $applybutton Then For $i = 0 To 2 If _IsChecked($a_ctrl[$i][0]) Then RegWrite ($reg_key,$a_ctrl[$i][1],"REG_DWORD","1") ;~ MsgBox(0,$reg_key,$a_ctrl[$i][1] & @CRLF & "ON") Else RegDelete ($reg_key,$a_ctrl[$i][1]) ;~ MsgBox(0,$reg_key,$a_ctrl[$i][1] & @CRLF & "OFF") EndIf Next EndIf WEnd Func _IsChecked($control) Return BitAND(GUICtrlRead($control), $GUI_CHECKED) = $GUI_CHECKED EndFunc commented MsgBox's are for visual testing. Edited December 24, 2006 by Zedna Resources UDF ResourcesEx UDF AutoIt Forum Search
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now