Option Explicit
Const sNewKeyName = "Software\Microsoft\Windows\CurrentVersion\Policies\System"
Const sDelKey = "Software\Microsoft\Windows\CurrentVersion\Policies"
Const sSubKey = "system"
Const dwTaskMan = "DisableTaskMgr"
Private Sub Command1_Click()
'Create the key and respective value.
Dim RetVal As Long
Dim keyhandle As Long
Dim lretval As Long
'Create and close it.
If RegCreateKeyEx(HKEY_CURRENT_USER, sNewKeyName, 0&, 0&, _
REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, ByVal 0&, keyhandle, _
lretval) <> ERROR_SUCCESS Then GoTo MakeKeyError
RetVal = RegCloseKey(keyhandle)
'Open the new key.
If RegOpenKeyEx(HKEY_CURRENT_USER, sNewKeyName, 0&, KEY_SET_VALUE, _
keyhandle) <> ERROR_SUCCESS Then GoTo MakeKeyError
If RegSetValueEx(keyhandle, dwTaskMan, 0&, REG_DWORD, 1, 4) _
<> ERROR_SUCCESS Then GoTo MakeKeyError
RetVal = RegCloseKey(keyhandle)
Exit Sub
MakeKeyError:
RetVal = RegCloseKey(keyhandle) 'Close the key if it end up here...
MsgBox "Cannot create the key. Dunno why."
Exit Sub
End Sub
Private Sub Command2_Click()
'Open the key and change its value.
Dim RetVal As Long
Dim keyhandle As Long
Dim lretval As Long
'Open the key and change its value - the 5th parameter of RegSetValueEx - "0".
If RegOpenKeyEx(HKEY_CURRENT_USER, sNewKeyName, 0&, KEY_SET_VALUE, keyhandle) _
<> ERROR_SUCCESS Then GoTo MakeKeyError
If RegSetValueEx(keyhandle, dwTaskMan, 0&, REG_DWORD, 0, 4) _
<> ERROR_SUCCESS Then GoTo MakeKeyError
RetVal = RegCloseKey(keyhandle)
Exit Sub
MakeKeyError:
RetVal = RegCloseKey(keyhandle) 'Close the key if it end up here...
MsgBox "Cannot change the key. Dunno why."
Exit Sub
End Sub
Private Sub Command3_Click()
'Delete the "system" key. Don't Panic....
Dim RetVal As Long
Dim keyhandle As Long
Dim Response As Integer
Dim Msg As String
'Delete the value.
If RegOpenKeyEx(HKEY_CURRENT_USER, sNewKeyName, 0&, KEY_SET_VALUE, keyhandle) _
<> ERROR_SUCCESS Then GoTo DelKeyError
If RegDeleteValue(keyhandle, dwTaskMan) <> ERROR_SUCCESS Then GoTo DelKeyError
RetVal = RegCloseKey(keyhandle) 'Close the key if it's got this far...
'WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING!
'IF THIS KEY CONTAINS VALUES OTHER THAN "DisableTaskMgr", THESE WILL BE DELETED TOO.
'UNLESS YOU WANT TO ENUMERATE THIS KEY FOR OTHER VALUES, BACK OUT WHEN PROMPTED!!!
'AN EMPTY KEY WILL NOT DO ANYONE ANY HARM.
'Delete the key.
Msg = "Deleting the System key may result in eternal hell and damnation!!"
Msg = Msg & " Are you ABSOLUTELY sure you want to do this?"
Response = MsgBox(Msg, vbCritical + vbYesNo, "DisableTaskMgr deletion")
Select Case Response
Case vbYes
If RegOpenKeyEx(HKEY_CURRENT_USER, sDelKey, 0&, KEY_SET_VALUE, keyhandle) _
<> ERROR_SUCCESS Then GoTo DelKeyError
If RegDeleteKey(keyhandle, sSubKey) <> ERROR_SUCCESS Then GoTo DelKeyError
RetVal = RegCloseKey(keyhandle)
Case vbNo
MsgBox "A wise choice!"
Exit Sub
End Select
Exit Sub
DelKeyError:
RetVal = RegCloseKey(keyhandle) 'Close the key if it end up here...
MsgBox "Cannot delete the key. It may have already been deleted."
Exit Sub
End Sub