Page 1 of 1

How to check if a register key exists?

Posted: Wed Jan 13, 2021 7:33 pm
by Caronte3D
Why this procedure output is ever = 1 ?? (no matter if key exists or not)

Code: Select all

Procedure.i RegKeyExists(exePath$)

  Protected Key.l = #HKEY_CURRENT_USER
  Protected Path.s = "Software\Microsoft\Windows\CurrentVersion\Run"
  Protected Value.s = "TEST"
  Protected String.s = Chr(34)+exePath$+Chr(34)
  Protected CurKey.l
  
      Define res.l=RegOpenKeyEx_(Key,@Path,0,#KEY_ALL_ACCESS,@CurKey)
      If res<>#ERROR_SUCCESS
        RegCloseKey_(CurKey)
        ProcedureReturn 0
      Else
        RegCloseKey_(CurKey)
        ProcedureReturn 1        
      EndIf
EndProcedure

Re: How to check if a register key exists?

Posted: Wed Jan 13, 2021 8:02 pm
by Caronte3D
I've figured out why happen this (this key already exists :lol: )

Then perhaps I must read the inside key value? :?

I see an: RegSetValueEx_ but not a: RegGetValueEx_

Any help apreciate

Re: How to check if a register key exists?

Posted: Wed Jan 13, 2021 8:23 pm
by Caronte3D
Nevermind, I already found: RegQueryValueEx_
Thanks anyway :wink: