zgy88c
4th January 2008 09:25 UTC
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}"
Afrow UK
4th January 2008 10:55 UTC
What happens if you try and delete it yourself through Regedit? What is ${appname} set to?
Stu
zgy88c
4th January 2008 11:19 UTC
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.
Afrow UK
4th January 2008 11:28 UTC
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
zgy88c
4th January 2008 12:37 UTC
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"
kichik
4th January 2008 12:44 UTC
Vista?
zgy88c
4th January 2008 12:49 UTC
Originally posted by kichik
Vista?
XP Professional + SP2
kichik
4th January 2008 13:02 UTC
You're trying to delete a registry value as a key. Use DeleteRegValue.
Afrow UK
4th January 2008 13:12 UTC
Well spotted lol
Stu
zgy88c
4th January 2008 13:38 UTC
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!