Jump to content

_RegExist(), _AddKey(), _DeleteKey() and _UpdateKey()


Go to solution Solved by ioa747,

Recommended Posts

Posted (edited)

Good day,

In responses to this...[Click_Me]...in response to the following three points...

Quote

Now, to be able to update those keys?!?
• The first needs to be added
• The second needs to be deleted
• The third needs to be updated

I have derived the following...[...based on content from the HelpFile, RegRead() an, RegDelete() and RegWrite()...]

; -----------------------------------------------
#include <MsgBoxConstants.au3>
; -----------------------------------------------
_RegExist("HKEY_CURRENT_USER\Software\Native Instruments\Guitar Rig 5", "UserContent")
_RegExist("HKEY_LOCAL_MACHINE\Software\Native Instruments\Guitar Rig 5", "InstallVSTDir")
_RegExist("HKEY_LOCAL_MACHINE\Software\Native Instruments\Guitar Rig 5", "InstallVST64Dir")
_AddKey()
_DeleteKey()
_UpdateKey()
; -----------------------------------------------
Func _RegExist($sKeyname, $sValuename)
    ; Check if the registry key exist
    RegRead($sKeyname, $sValuename)
    If @error = 0 Then
        MsgBox($MB_SYSTEMMODAL, "Registry", "The registry key" & @CRLF & $sKeyname & @CRLF & $sValuename & @CRLF & " exists.")
        Return True
    Else
        MsgBox($MB_SYSTEMMODAL, "Registry", "The registry key" & @CRLF & $sKeyname & @CRLF & $sValuename & @CRLF & "...does not Exist.")
        Return False
    EndIf
EndFunc   ;==>_RegExist
; -----------------------------------------------
Func _AddKey()
    ; HKEY_CURRENT_USER\Software\Native Instruments\Guitar Rig 5
    ; "UserContent"="C:\Program Files\Native Instruments\Reflektor\User_Impulses\"
    ; Source data
    Local $sKey = "HKEY_CURRENT_USER\Software\Native Instruments\Guitar Rig 5"
    Local $iRegWrite = RegWrite("HKEY_CURRENT_USER\Software\Native Instruments\Guitar Rig 5", "UserContent", "REG_SZ", "C:\Program Files\Native Instruments\Reflektor\User_Impulses\")
    ; -----------------------------------------------
    If IsAdmin() Then
        MsgBox($MB_TOPMOST, "RegWrite", $sKey & "...succesfully added")
    Else
        MsgBox($MB_TOPMOST, "RegWrite", $sKey & "...not succesfully added")
    EndIf
    ; -----------------------------------------------
    ; clean registry
    ;RegDelete($sKey, "UserContent")
EndFunc   ;==>_AddKey
; -----------------------------------------------
Func _DeleteKey()
    ; HKEY_LOCAL_MACHINE\Software\Native Instruments\Guitar Rig 5
    ; "InstallVSTDir"="C:\Program Files\Native Instruments\VSTPlugins 32 bit"
    ; Source data
    Local $sKey = "HKEY_LOCAL_MACHINE\Software\Native Instruments\Guitar Rig 5"
    Local $iRegDelete = "InstallVSTDir"
    ; -----------------------------------------------
    RegDelete($sKey, $iRegDelete)
    ; -----------------------------------------------
    ; To verify....GOSH!!...I did this one myself!!!
    If IsAdmin() Then
        MsgBox($MB_TOPMOST, "RegWrite", $iRegDelete & "...succesfully deleted")
    Else
        MsgBox($MB_TOPMOST, "RegWrite", $iRegDelete & "...not succesfully deleted" & @CRLF)
    EndIf
EndFunc   ;==>_DeleteKey
; -----------------------------------------------
Func _UpdateKey()
    ; HKEY_LOCAL_MACHINE\Software\Native Instruments\Guitar Rig 5
    ; "InstallVST64Dir"="C:\RML\SAC\VST_PlugIns\Ampsim\"
    Local $sKey = "HKEY_LOCAL_MACHINE\Software\Native Instruments\Guitar Rig 5"
    Local $iRegWrite = RegWrite("HKEY_LOCAL_MACHINE\Software\Native Instruments\Guitar Rig 5", "InstallVST64Dir", "REG_SZ", "C:\RML\SAC\VST_PlugIns\Ampsim\")
    ; -----------------------------------------------
    If IsAdmin() Then
        MsgBox($MB_TOPMOST, "RegWrite", $iRegWrite & "...succesfully updated")
    Else
        MsgBox($MB_TOPMOST, "RegWrite", $iRegWrite & "...not succesfully updated")
    EndIf
    ; -----------------------------------------------
    ; clean registry
    ;RegDelete($sKey, "InstallVST64Dir")
EndFunc   ;==>_UpdateKey
; -----------------------------------------------

I do believe that I beginning "...to get the hang of all of this?!?!"

Edited by mr-es335
Posted

 

 

; -----------------------------------------------
#include <MsgBoxConstants.au3>
; -----------------------------------------------
_RegExist("HKEY_CURRENT_USER\Software\Native Instruments\Guitar Rig 5", "UserContent")
_RegExist("HKEY_LOCAL_MACHINE\Software\Native Instruments\Guitar Rig 5", "InstallVSTDir")
_RegExist("HKEY_LOCAL_MACHINE\Software\Native Instruments\Guitar Rig 5", "InstallVST64Dir")
_AddKey()
_DeleteKey()
_UpdateKey()
; -----------------------------------------------
Func _RegExist($sKeyname, $sValuename)
    ; Check if the registry key exist
    RegRead($sKeyname, $sValuename)
    If @error = 0 Then
        MsgBox($MB_SYSTEMMODAL, "Registry", "The registry key" & @CRLF & $sKeyname & @CRLF & $sValuename & @CRLF & " exists.")
        Return True
    Else
        MsgBox($MB_SYSTEMMODAL, "Registry", "The registry key" & @CRLF & $sKeyname & @CRLF & $sValuename & @CRLF & "...does not Exist.")
        Return False
    EndIf
EndFunc   ;==>_RegExist
; -----------------------------------------------
Func _AddKey()
    ; HKEY_CURRENT_USER\Software\Native Instruments\Guitar Rig 5
    ; "UserContent"="C:\Program Files\Native Instruments\Reflektor\User_Impulses\"
    ; Source data
    Local $sKey = "HKEY_CURRENT_USER\Software\Native Instruments\Guitar Rig 5"
    Local $iRegWrite = RegWrite("HKEY_CURRENT_USER\Software\Native Instruments\Guitar Rig 5", "UserContent", "REG_SZ", "C:\Program Files\Native Instruments\Reflektor\User_Impulses\")
    ; -----------------------------------------------
;~     If IsAdmin() Then
;~         MsgBox($MB_TOPMOST, "RegWrite", $sKey & "...succesfully added")
;~     Else
;~         MsgBox($MB_TOPMOST, "RegWrite", $sKey & "...not succesfully added")
;~     EndIf
    Local $sConfirm = RegRead($sKey, "UserContent")
    If $sConfirm = "C:\Program Files\Native Instruments\Reflektor\User_Impulses\" Then
        MsgBox($MB_TOPMOST, "RegWrite", $sKey & "...succesfully added")
    Else
        MsgBox($MB_TOPMOST, "RegWrite", $sKey & "...not succesfully added")
    EndIf
    ; -----------------------------------------------
    ; clean registry
    ;RegDelete($sKey, "UserContent")
EndFunc   ;==>_AddKey
; -----------------------------------------------
Func _DeleteKey()
    ; HKEY_LOCAL_MACHINE\Software\Native Instruments\Guitar Rig 5
    ; "InstallVSTDir"="C:\Program Files\Native Instruments\VSTPlugins 32 bit"
    ; Source data
    Local $sKey = "HKEY_LOCAL_MACHINE\Software\Native Instruments\Guitar Rig 5"
    Local $iRegDelete = "InstallVSTDir"
    ; -----------------------------------------------
    RegDelete($sKey, $iRegDelete)
    ; -----------------------------------------------
    ; To verify....GOSH!!...I did this one myself!!!
;~     If IsAdmin() Then
;~         MsgBox($MB_TOPMOST, "RegWrite", $iRegDelete & "...succesfully deleted")
;~     Else
;~         MsgBox($MB_TOPMOST, "RegWrite", $iRegDelete & "...not succesfully deleted" & @CRLF)
;~     EndIf
    $sConfirm = RegRead($sKey, $iRegDelete)
    If @error = 0 Then
        MsgBox($MB_TOPMOST, "RegWrite", $iRegDelete & "...not succesfully deleted" & @CRLF)
    Else
        MsgBox($MB_TOPMOST, "RegWrite", $iRegDelete & "...succesfully deleted")
    EndIf
EndFunc   ;==>_DeleteKey
; -----------------------------------------------
Func _UpdateKey()
    ; HKEY_LOCAL_MACHINE\Software\Native Instruments\Guitar Rig 5
    ; "InstallVST64Dir"="C:\RML\SAC\VST_PlugIns\Ampsim\"
    Local $sKey = "HKEY_LOCAL_MACHINE\Software\Native Instruments\Guitar Rig 5"
    Local $iRegWrite = RegWrite("HKEY_LOCAL_MACHINE\Software\Native Instruments\Guitar Rig 5", "InstallVST64Dir", "REG_SZ", "C:\RML\SAC\VST_PlugIns\Ampsim\")
    ; -----------------------------------------------
;~     If IsAdmin() Then
;~         MsgBox($MB_TOPMOST, "RegWrite", $iRegWrite & "...succesfully updated")
;~     Else
;~         MsgBox($MB_TOPMOST, "RegWrite", $iRegWrite & "...not succesfully updated")
;~     EndIf
    Local $sConfirm = RegRead($sKey, "InstallVST64Dir")
    If $sConfirm = "C:\RML\SAC\VST_PlugIns\Ampsim\" Then
        MsgBox($MB_TOPMOST, "RegWrite", $iRegWrite & "...succesfully updated")
    Else
        MsgBox($MB_TOPMOST, "RegWrite", $iRegWrite & "...not succesfully updated")
    EndIf
    ; -----------------------------------------------
    ; clean registry
    ;RegDelete($sKey, "InstallVST64Dir")
EndFunc   ;==>_UpdateKey
; -----------------------------------------------

 

I know that I know nothing

Posted (edited)

ioa747,

Thanks for the help..appreciated!

However, the first key/value does not exist...but is showing as existing...

Also, the path "C:\Program Files\Native Instruments\Reflektor\User_Impulses\" does not yet exist.
• Can the key/value not be checked itself?

error.png

Edited by mr-es335
Posted (edited)

we are talking about her first call of _RegExist("HKEY_CURRENT_USER\Software\Native Instruments\Guitar Rig 5", "UserContent") ?

edit:
add ConsoleWrite for confirmation

Func _RegExist($sKeyname, $sValuename)
    ; Check if the registry key exist
    Local $sValue = RegRead($sKeyname, $sValuename)
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $sValue = ' & $sValue &  ' >Error code: ' & @error & @CRLF) ;### Debug Console
    If @error = 0 Then
        MsgBox($MB_SYSTEMMODAL, "Registry", "The registry key" & @CRLF & $sKeyname & @CRLF & $sValuename & @CRLF & " exists.")
        Return True
    Else
        MsgBox($MB_SYSTEMMODAL, "Registry", "The registry key" & @CRLF & $sKeyname & @CRLF & $sValuename & @CRLF & "...does not Exist.")
        Return False
    EndIf
EndFunc   ;==>_RegExist

 

Edited by ioa747

I know that I know nothing

Posted (edited)

ioa747,

As they say, "My bad!"

I was looking at the exported reg key and NOT the actual reg key itself. My sincerest apologies here, ioa747!! Please forgive me!

How do I check the actual "REG_SZ" value of the _UpdateKey() function?

For example: ""HKEY_LOCAL_MACHINE\Software\Native Instruments\Guitar Rig 5", "InstallVST64Dir", "REG_SZ", "C:\RML\SAC\VST_PlugIns\Ampsim\"

Edited by mr-es335
Posted

Hello,

Here is what I discovered from [Click_Me] {Altin's post]

; -----------------------------------------------
#include <MsgBoxConstants.au3>
; -----------------------------------------------
_FindValueData()
; -----------------------------------------------
Func _FindValueData()
    $i = 2
    $var = RegEnumVal("HKEY_LOCAL_MACHINE\Software\Native Instruments\Guitar Rig 5", $i)
    ; -----------------------------------------------
    MsgBox(4096, $var, RegRead("HKEY_LOCAL_MACHINE\Software\Native Instruments\Guitar Rig 5", $var))
EndFunc   ;==>_FindValueData
; -----------------------------------------------

So far...so good!!!

Posted (edited)

Hello,

How can I amalgamate..that is, join,  the two following scripts so that the value of "$var" in Script 2, is what is being tested|returned?
• The output should state: "C:\RML\SAC\VST_PlugIns\Ampsim\...has been successfully updated."

; -----------------------------------------------
#include <MsgBoxConstants.au3>
; -----------------------------------------------
_UpdateKey()
_Testing()
; -----------------------------------------------
; Script 1
Func _UpdateKey()
    Local $sKey = "HKEY_LOCAL_MACHINE\Software\Native Instruments\Guitar Rig 5"
    Local $iRegWrite = RegWrite("HKEY_LOCAL_MACHINE\Software\Native Instruments\Guitar Rig 5", "InstallVST64Dir", "REG_SZ", "C:\RML\SAC\VST_PlugIns\Ampsim\")
    ; -----------------------------------------------
    If IsAdmin() Then
        MsgBox($MB_TOPMOST, "RegWrite", $iRegWrite & "...has been successfully updated")
    Else
        MsgBox($MB_TOPMOST, "RegWrite", $iRegWrite & "...has not been successfully updated")
    EndIf
EndFunc   ;==>_UpdateKey
; -----------------------------------------------
; Script 2
Func _Testing()
    $var = RegEnumVal("HKEY_LOCAL_MACHINE\Software\Native Instruments\Guitar Rig 5", 3)
    ; -----------------------------------------------
    MsgBox(4096, $var, RegRead("HKEY_LOCAL_MACHINE\Software\Native Instruments\Guitar Rig 5", $var))
EndFunc   ;==>_Testing
; -----------------------------------------------

Also, what is the point|reason|purpose or|for "IsAdmin()"?
• I am more used to seeing" If @error = 0 Then...

Lastly, the output of "MsgBox($MB_TOPMOST, "RegWrite", $iRegWrite & "...has been successfully updated")" is "1"!
• Where is that output coming from?

Any assistance in this matter would be greatly appreciated!

Edited by mr-es335
  • Solution
Posted (edited)
; -----------------------------------------------
#include <MsgBoxConstants.au3>
; -----------------------------------------------
_UpdateKey()

; -----------------------------------------------
; Script 1
Func _UpdateKey()
    ; Update
    Local $sKeyName = "HKEY_LOCAL_MACHINE\Software\Native Instruments\Guitar Rig 5"
    Local $sValueName = "InstallVST64Dir"
    Local $sValueType = "REG_SZ"
    Local $sValue = "C:\RML\SAC\VST_PlugIns\Ampsim\"
    Local $iRegWrite = RegWrite($sKeyName, $sValueName, $sValueType, $sValue)
    ; -----------------------------------------------
    ; Testing - Confirm
    Local $sConfirm = RegRead($sKey, $sValueName)
    If $sConfirm =  $sValue Then
        MsgBox($MB_TOPMOST, "RegWrite", $iRegWrite & "...succesfully updated" & @CRLF "Value: " & $sConfirm)
    Else
        MsgBox($MB_TOPMOST, "RegWrite", $iRegWrite & "...not succesfully updated" & @CRLF "Value: " & $sConfirm)
    EndIf
EndFunc   ;==>_UpdateKey
; -----------------------------------------------

 

  

27 minutes ago, mr-es335 said:

Also, what is the point|reason|purpose or|for "IsAdmin()"?

https://www.autoitscript.com/autoit3/docs/functions/IsAdmin.htm

Edited by ioa747

I know that I know nothing

Posted

Hello,

I came up with this...[...looks "dirty" however...]

; -----------------------------------------------
#include <MsgBoxConstants.au3>
; -----------------------------------------------
_UpdateVerifyKey()
; -----------------------------------------------
Func _UpdateVerifyKey()
    Local $sKey = "HKEY_LOCAL_MACHINE\Software\Native Instruments\Guitar Rig 5"
    Local $iRegWrite = RegWrite("HKEY_LOCAL_MACHINE\Software\Native Instruments\Guitar Rig 5", "InstallVST64Dir", "REG_SZ", "C:\RML\SAC\VST_PlugIns\Ampsim\")
    $var = RegEnumVal("HKEY_LOCAL_MACHINE\Software\Native Instruments\Guitar Rig 5", 7)
    ; -----------------------------------------------
    If @error = 0 Then
    MsgBox(4096, $var, RegRead("HKEY_LOCAL_MACHINE\Software\Native Instruments\Guitar Rig 5", $var) & "...has been sucessfully updated!")
    EndIf
EndFunc   ;==>_UpdateVerifyKey
; -----------------------------------------------

 

Posted

ioa747,

Your example is much more elegant...

However there were three errors...

; -----------------------------------------------
#include <MsgBoxConstants.au3>
; -----------------------------------------------
_UpdateKey()
; -----------------------------------------------
; Script 1
Func _UpdateKey()
    ; Update
    Local $sKeyName = "HKEY_LOCAL_MACHINE\Software\Native Instruments\Guitar Rig 5"
    Local $sValueName = "InstallVST64Dir"
    Local $sValueType = "REG_SZ"
    Local $sValue = "C:\RML\SAC\VST_PlugIns\Ampsim\"
    Local $iRegWrite = RegWrite($sKeyName, $sValueName, $sValueType, $sValue)
    ; -----------------------------------------------
    ; Testing - Confirm
    Local $sConfirm = RegRead($sKeyName, $sValueName)
    If $sConfirm =  $sValue Then
        MsgBox($MB_TOPMOST, "RegWrite", $iRegWrite & "...succesfully updated" & @CRLF & "Value: " & $sConfirm)
    Else
        MsgBox($MB_TOPMOST, "RegWrite", $iRegWrite & "...not succesfully updated" & @CRLF & "Value: " & $sConfirm)
    EndIf
EndFunc   ;==>_UpdateKey
; -----------------------------------------------

You had "Local $sConfirm = RegRead($sKey, $sValueName)"...instead of... "Local $sConfirm = RegRead($sKeyName, $sValueName)"

Also, you had, "& @CRLF "Value: " & $sConfirm)"  ...instead of... "& @CRLF & "Value: " & $sConfirm)"

Lastly, how can a string [C:\RML\SAC\VST_PlugIns\Ampsim\] be displayed instead of a numeral [1]?

image.png

Posted

Hello,

Done...

; -----------------------------------------------
#include <MsgBoxConstants.au3>
; -----------------------------------------------
_UpdateKey()
; -----------------------------------------------
; Script 1
Func _UpdateKey()
    ; Update
    Local $sKeyName = "HKEY_LOCAL_MACHINE\Software\Native Instruments\Guitar Rig 5"
    Local $sValueName = "InstallVST64Dir"
    Local $sValueType = "REG_SZ"
    Local $sValue = "C:\RML\SAC\VST_PlugIns\Ampsim\"
    Local $iRegWrite = RegWrite($sKeyName, $sValueName, $sValueType, $sValue)
    Local $sConfirm = RegRead($sKeyName, $sValueName)
    ; -----------------------------------------------
    ; Testing - Confirm
    If $sConfirm = $sValue Then
        MsgBox($MB_TOPMOST, "RegWrite", $sValue & "...succesfully updated" & @CRLF & "Value: " & $sConfirm)
    Else
        MsgBox($MB_TOPMOST, "RegWrite", $sValue & "...not succesfully updated" & @CRLF & "Value: " & $sConfirm)
    EndIf
EndFunc   ;==>_UpdateKey
; -----------------------------------------------

ioa747....I very, very, very much appreciate your efforts!! Thank you very much...
• [Click_Me]...begin at 1:06...

Posted

ioa747,

A few questions, if you would be so kind...

In your above example...

; -----------------------------------------------
#include <MsgBoxConstants.au3>
; -----------------------------------------------
_UpdateRegKey()
; -----------------------------------------------
; Script 1
Func _UpdateRegKey()
    ; Source data
    Local $sKeyName = "HKEY_LOCAL_MACHINE\Software\Native Instruments\Guitar Rig 5"
    Local $sValueName = "InstallVST64Dir"
    Local $sValueType = "REG_SZ"
    Local $sValue = "C:\RML\SAC\VST_PlugIns\Ampsim\"
    Local $iRegWrite = RegWrite($sKeyName, $sValueName, $sValueType, $sValue)
    Local $sConfirm = RegRead($sKeyName, $sValueName)
    ; -----------------------------------------------
    If $sConfirm = $sValue Then
        MsgBox($MB_TOPMOST, "RegWrite", $sValueName & "...was succesfully updated" & @CRLF & "Value: " & $sConfirm)
    Else
        MsgBox($MB_TOPMOST, "RegWrite", $sValueName & "...was not succesfully updated" & @CRLF & "Value: " & $sConfirm)
    EndIf
EndFunc   ;==>_UpdateRegKey
; -----------------------------------------------

...is the line, "Local $iRegWrite = RegWrite($sKeyName, $sValueName, $sValueType, $sValue)" really required, as "$iRegWrite" is not deployed anywhere?
• Thus, my first question is, "Could RegWrite($sKeyName, $sValueName, $sValueType, $sValue) not simply be deployed n it's own?"

I am attempting to employ your script to the other two scripts that I have for adding and deleting various Registry keys. However, for whatever reason, I am unable to get these scripts to work.
• Thus, my second "question is, "Why am I unable to get these scripts to work?"
• I swear, that the more I think I know, I tend to discover that I  really do NOT knowing anything at all!!

I want to add the following to your "_UpdateRegKey" script:

For _DeleteRegKey()...to update the following:
Local $sKeyName = "HKEY_LOCAL_MACHINE\Software\Native Instruments\Guitar Rig 5"
Local $sValueName = "InstallVSTDir"
Local $sValueType = "REG_SZ"
Local $sValue = "C:\Program Files\Native Instruments\VSTPlugins 32 bit"
RegDelete($sKeyName, $sValueName)
For _AddRegKey(), to update the following:
Local $sKeyName = "HKEY_CURRENT_USER\Software\Native Instruments\Guitar Rig 5"
Local $iRegWrite = RegWrite("HKEY_CURRENT_USER\Software\Native Instruments\Guitar Rig 5", "UserContent", "REG_SZ", "C:\Program Files\Native Instruments\Reflektor\User_Impulses\")

Any assistance in these matters would be greatly appreciated!

Posted

Hello,

So, I have been able to successfully update the "_AddRegKey" script! Here is that updated-and-working script:

; -----------------------------------------------
#include <MsgBoxConstants.au3>
; -----------------------------------------------
_AddRegKey()
; -----------------------------------------------
Func _AddRegKey()
    Local $sKeyName = "HKEY_CURRENT_USER\Software\Native Instruments\Guitar Rig 5"
    Local $sValueName = "UserContent"
    Local $sValueType = "REG_SZ"
    Local $sValue = "C:\Program Files\Native Instruments\Reflektor\User_Impulses\"
    Local $sConfirm = RegRead($sKeyName, $sValueName)
    ; -----------------
    Local $iRegWrite = RegWrite($sKeyName, $sValueName, $sValueType, $sValue)
    ; -----------------------------------------------
    If $sConfirm = $sValue Then
        MsgBox($MB_TOPMOST, "RegWrite", $sValueName & "...was succesfully updated" & @CRLF & "Value: " & $sConfirm)
    Else
        MsgBox($MB_TOPMOST, "RegWrite", $sValueName & "...was not succesfully updated" & @CRLF & "Value: " & $sConfirm)
    EndIf
EndFunc   ;==>_AddRegKey
; -----------------------------------------------

However, the "_DeleteRegKey" script is still not working!!! Why?? Here is what I have thus far....[Man! I am "stumped"?!?!?]

; -----------------------------------------------
#include <MsgBoxConstants.au3>
; -----------------------------------------------
_DeleteRegKey()
; -----------------------------------------------
Func _DeleteRegKey()
    ; Source data
    Local $sKeyName = "HKEY_LOCAL_MACHINE\Software\Native Instruments\Guitar Rig 5"
    Local $sValueName = "InstallVSTDir"
    Local $sConfirm = RegRead($sKeyName, $sValueName)
    ; -----------------
    Local $iRegDelete = RegDelete($sKeyName, $sValueName)
    ; -----------------------------------------------
    ; Yours "Does NOT Work!"
    ;If $sConfirm = $sValueName Then
    ;   MsgBox($MB_TOPMOST, "RegDelete", $sValueName & "...was succesfully updated" & @CRLF & "ValueName: " & $sConfirm)
    ;Else
    ;   MsgBox($MB_TOPMOST, "RegDelete", $sValueName & "...was not succesfully updated" & @CRLF & "ValueName: " & $sConfirm)
    ;EndIf
    ; -----------------
    ; Mine "Works!"
    ;If @error = 0 Then
        ;MsgBox($MB_TOPMOST, "RegDelete", $sValueName & "...was succesfully deleted")
    ;Else
    ;   MsgBox($MB_TOPMOST, "RegDelete", $sValueName  & "...was not succesfully deleted")
    ;EndIf
EndFunc   ;==>_DeleteRegKey
; -----------------------------------------------

 

Posted
38 minutes ago, mr-es335 said:

...is the line, "Local $iRegWrite = RegWrite($sKeyName, $sValueName, $sValueType, $sValue)" really required,

you don't need it anymore, since we removed it from the msgbox
it could be   RegWrite($sKeyName, $sValueName, $sValueType, $sValue)

 

I know that I know nothing

Posted (edited)

HKEY_LOCAL_MACHINE\Software\Native Instruments\Guitar Rig 5
i thing #RequireAdmin

look at if value exist in
HKEY_CURRENT_USER\Software\Native Instruments\Guitar Rig 5
not  #RequireAdmin


Edit:
wait, I don't understand what the problem is

what doesn't work

the deletion?
or the confirmation?

Edited by ioa747

I know that I know nothing

Posted (edited)
; -----------------------------------------------
#include <MsgBoxConstants.au3>
; -----------------------------------------------
_DeleteRegKey()
; -----------------------------------------------
Func _DeleteRegKey()
    ; Source data
    Local $sKeyName = "HKEY_LOCAL_MACHINE\Software\Native Instruments\Guitar Rig 5"
    Local $sValueName = "InstallVSTDir"
    RegDelete($sKeyName, $sValueName)
    ; -----------------------------------------------
    
    $sConfirm = RegRead($sKeyName, $sValueName)
    If @error = 0 Then ; If @error = 0,  it means he read it,  so it wasn't deleted
        MsgBox($MB_TOPMOST, "RegWrite", $sValueName & "...not succesfully deleted" & @CRLF)
    Else
        MsgBox($MB_TOPMOST, "RegWrite", $sValueName & "...succesfully deleted")
    EndIf

    ;EndIf
EndFunc   ;==>_DeleteRegKey
; -----------------------------------------------

or

; -----------------------------------------------
#include <MsgBoxConstants.au3>
; -----------------------------------------------
_DeleteRegKey()
; -----------------------------------------------
Func _DeleteRegKey()
    ; Source data
    Local $sKeyName = "HKEY_LOCAL_MACHINE\Software\Native Instruments\Guitar Rig 5"
    Local $sValueName = "InstallVSTDir"
    Local $sConfirm = RegDelete($sKeyName, $sValueName)
    ; -----------------------------------------------
    If $sConfirm = 1 Then ; 1 = succesfully deleted
        MsgBox($MB_TOPMOST, "RegDelete", $sValueName & "...was succesfully deleted")
    Else
       MsgBox($MB_TOPMOST, "RegDelete", $sValueName  & "...was not succesfully deleted")
    EndIf
    
EndFunc   ;==>_DeleteRegKey
; -----------------------------------------------

 

Edited by ioa747

I know that I know nothing

Posted

ioa747,

Okay! I have updated the scripts as follows:

; -----------------------------------------------
#include <MsgBoxConstants.au3>
; -----------------------------------------------
_DeleteRegKey()
; -----------------------------------------------
Func _DeleteRegKey()
    ; Source data
    Local $sKeyName = "HKEY_LOCAL_MACHINE\Software\Native Instruments\Guitar Rig 5"
    Local $sValueName = "InstallVSTDir"
    ; -----------------------------------------------
    RegDelete($sKeyName, $sValueName)
    ; -----------------
    If @error = 1 Then ; If @error = 0,  it means he read it,  so it wasn't deleted
        ; Output A
        MsgBox($MB_ICONINFORMATION, "RegRead", $sKeyName & @CRLF & "...was not succesfully deleted" & @CRLF & "ValueName : Exists!")
    Else
        ; Output B
        MsgBox($MB_ICONINFORMATION, "RegRead", $sKeyName & @CRLF & "...was succesfully deleted" & @CRLF & "ValueName : Does not exist!")
    EndIf
EndFunc   ;==>_DeleteRegKey
; -----------------------------------------------

As present, if I restore the Reg key and value, and comment-out "RegDelete($sKeyName, $sValueName)" - I receive the following result: See Output A.png

Then, if I remove the comment from "RegDelete($sKeyName, $sValueName)" - I still receive the same end result: See Output B.png

"Why"
• I am beginning to see that I really need to do more work on "If...Then's"...

Output A.png

Output B.png

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
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...