Archive: NSIS can't remove NSIS created registry key


NSIS can't remove NSIS created registry key
I have an NSIS installer that creates a registry key, such that when ActiveSync sees a device cradled, it automatically starts my application.

The creation of the key works fine (as does the ActiveSync function), but on Un-Install, the registry key is not removed.

All other registry entries created can be deleted without issue.

Any help much appreciated.



So from my "post" section:

Section "-post"
; Create the ActiveSync key so our app starts when the device is cradled
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows CE Services\AutoStartOnConnect" "${appname}" "$INSTDIR\${exe}"


And my Uninstall section:

Section "Uninstall"

; Delete the ActiveSync key so our app wont start when the device is cradled
DeleteRegKey HKLM "SOFTWARE\Microsoft\Windows CE Services\AutoStartOnConnect\${appname}"


What happens if you try and delete it yourself through Regedit? What is ${appname} set to?

Stu


Originally posted by Afrow UK
What happens if you try and delete it yourself through Regedit?
What is ${appname} set to?
With regedit it just deletes, no permission problems.

${appname} = Device Integration Service

I just changed it to have no spaces, it made no difference.

What happens if you delete it from your install section after creating it?

Just to confirm, ${appname} is a constant and doesn't contain a variable with its value set to Device Integration Service.

Stu


Originally posted by Afrow UK
What happens if you delete it from your install section after creating it?

Just to confirm, ${appname} is a constant and doesn't contain a variable with its value set to Device Integration Service.

Stu
If I put the delete immeadiately after the create in the install section, the key is still not deleted.

${appname} is a constant -
!define appname "Device Integration Service"

Vista?


Originally posted by kichik
Vista?
XP Professional + SP2

You're trying to delete a registry value as a key. Use DeleteRegValue.


Well spotted lol

Stu


Originally posted by kichik
You're trying to delete a registry value as a key. Use DeleteRegValue.
That was it! Many thanks.

FWIW: RegMon (http://www.microsoft.com/germany/tec...es/Regmon.mspx)
helped tracing the reads & writes.

I was just about to post a screen-shot of it creating the key,
then failing to find the key on the next command - the delete.

Thanks again!