Delete Registry Key

Just starting out? Need help? Post your questions and find answers here.
Maya

Delete Registry Key

Post by Maya »

Hello Everyone,
May ask about the code line to delete a Registry Key with all its subkeys?
i.e. HKEY_CURRENT_USER\SOFTWARE\DelThisKey
I tried:

Code: Select all

RegDeleteKey_(#HKEY_CURRENT_USER, "SOFTWARE\DelThisKey")
Last edited by Maya on Thu Apr 25, 2024 10:02 pm, edited 2 times in total.
AZJIO
Addict
Addict
Posts: 2193
Joined: Sun May 14, 2017 1:48 am

Re: Delete Registry Key

Post by AZJIO »

Maya

Re: Delete Registry Key

Post by Maya »

Thanks, but I don't want to use "Registry.pbi" or tons of codeines just to delete a regkey!
Maya

Re: Delete Registry Key

Post by Maya »

I found it!
SHDeleteKey_(#HKEY_CURRENT_USER, "SOFTWARE\DelThisKey")
Last edited by Maya on Fri Apr 26, 2024 2:07 am, edited 1 time in total.
BarryG
Addict
Addict
Posts: 4186
Joined: Thu Apr 18, 2019 8:17 am

Re: Delete Registry Key

Post by BarryG »

Maya wrote: Thu Apr 25, 2024 10:10 pmSHDeleteKey(#HKEY_CURRENT_USER, "SOFTWARE\DelThisKey")
Don't forget the underscore:

Code: Select all

SHDeleteKey_(#HKEY_CURRENT_USER, "SOFTWARE\DelThisKey")
Maya

Re: Delete Registry Key

Post by Maya »

Amended, thanks.
Any codeine example about "RegCreateKeyEx_"?
AZJIO
Addict
Addict
Posts: 2193
Joined: Sun May 14, 2017 1:48 am

Re: Delete Registry Key

Post by AZJIO »

Code: Select all

EnableExplicit

If Not IsUserAnAdmin_()
	MessageRequester("Message", "Run as administrator", #MB_SYSTEMMODAL)
	End
EndIf


Procedure RegExistsKey(RootKey, SubKey$)
	Protected hKey
	If #ERROR_SUCCESS = RegOpenKeyEx_(RootKey, SubKey$, 0, #KEY_READ, @hKey)
		RegCloseKey_(hKey)
		ProcedureReturn 1
	Else
		ProcedureReturn 0
	EndIf
EndProcedure

Define NewKey
Define KeyInfo
Define Value$

Value$ = "%windir%\System32\notepad.exe"

If #ERROR_SUCCESS = RegCreateKeyEx_(#HKEY_CLASSES_ROOT, "*\shell\notepadxyz", 0, 0, #REG_OPTION_NON_VOLATILE, #KEY_ALL_ACCESS, 0, @NewKey, @KeyInfo)
	If #ERROR_SUCCESS = RegSetValueEx_(NewKey, "", 0, #REG_SZ, Value$, StringByteLength(Value$, #PB_Unicode) + 2)
		MessageRequester("", "Created", #MB_SYSTEMMODAL)
	EndIf
	RegCloseKey_(NewKey)
EndIf

Debug RegExistsKey(#HKEY_CLASSES_ROOT, "*\shell\notepadxyz")

If #ERROR_SUCCESS = RegDeleteKey_(#HKEY_CLASSES_ROOT, "*\shell\notepadxyz\")
	MessageRequester("", "Deleted", #MB_SYSTEMMODAL)
EndIf

Debug RegExistsKey(#HKEY_CLASSES_ROOT, "*\shell\notepadxyz")
Post Reply