Reg Key and Install Directory for Complete

That makes sense, but then how can I work around it?

If this:
CreateDirectory "$SMPROGRAMS\$StartMenuFolder"
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\${NAME}.lnk"

Doesn't mean the same thing as this:
Delete "$SMPROGRAMS\$StartMenuFolder\${NAME}.lnk"
RMDir "$SMPROGRAMS\$StartMenuFolder"

How can I get the uninstaller to recognize, or rather search for the correct created path for the shortcuts? :confused:
 
Or possibly this:
!insertmacro MUI_PAGE_STARTMENU Application $StartMenuFolder
!insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder

Looks like different syntax used in two places, where only one is correct?
 
Nope, no dice. Fails to compile and says the variable StartMenuFolder is already defined.

Thanks for suggesting something though. I'm thinking that the !insertmacro MUI_STARTMENU_GETFOLDER needs to be defined somewhere. Looking through the BUG code it's kind of confusing, and overlaps with other other functions in the install script, so I can't figure out how to work it in...
 
Try taking this out: !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder
and don't replace it with anything. If the compiler is telling you $StartMenuFolder is already defined... then you are (if I have this correct) attempting to redefine it in the uninstall section, when it already has been assigned.
 
Actually when I originally tried it at first, I forgot to add that part. So it's already been tried.
 
IIRC, MUI_STARTMENU_GETFOLDER reads the path that it wrote to the registry. And I think the stuff after MUI_STARTMENU_WRITE_BEGIN is what gets written. So since you create the folder and then the shortcut, maybe the shortcut path is overwriting the folder?

I'd have to look into the BUG script to see what it does to be sure. I can take a look at that tomorrow perhaps. Like I said before, add logging statements that output the variables you are using so you can see what's happening.
 
Well tried:

Code:
  Section "Start Menu Shortcut" Section4
  	!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
		CreateDirectory "$SMPROGRAMS\$StartMenuFolder"
	!insertmacro MUI_STARTMENU_WRITE_END
    CreateShortCut "$SMPROGRAMS\$StartMenuFolder\${NAME}.lnk" "$INSTDIR1\Civ4BeyondSword.exe" "mod=\${MOD_LOC}" "$INSTDIR\Mods\${MOD_LOC}\${RAW_ICON}" 0
  SectionEnd

And it did not work. Installed correctly, but the uninstaller failed to remove it still.

How do I add logging statements that output the variables I am using so I can see what's happening?

Bummer, was hoping it was something simple.
 
Naw, I checked the BUG install script and it creates all the shortcuts between those two macros. In fact, all mentions of StartMenuFolder match what you posted. There's something else going on here, and I don't see it. Permissions? Are you on XP or Vista?

As for logging, I don't remember. Look in the docs for logging or printing. I remember seeing it at some point and probably even using it. You can also pop up a dialog box with what you want to see. I saw you post samples of that, so I know you can do that.
 
It's XP, so I can't see how it's an issue with permissions. Also how could it delete the other mod's reg key, and everything else in it, yet not have permission to remove a start menu shortcut? That just doesn't seem like it could be the answer.

!insertmacro: MUI_STARTMENU_GETFOLDER
!insertmacro: end of MUI_STARTMENU_GETFOLDER
Delete: "$SMPROGRAMS\$StartMenuFolder\Charlemagne.lnk"
RMDir: "$SMPROGRAMS\$StartMenuFolder"

Is this the problem? That the STRTMENU_GETFOLDER macro starts and ends before the Start Menu deletions is checked?
 
Yeah, I'm just suggesting anything else it might be. I doubt it's permissions as well.

No, the MUI_STARTMENU_GETFOLDER macro simply reads the name of the start menu from the registry I believe. It should not have a begin and end line but only a single line before the deletions, just as I have it in bug.nsi.

Are you showing the page to ask the user if they want to create a shortcut and if so the name of the folder? This is the Choose Start Menu Folder page. I believe showing that page puts the name you enter in the box into the registry. I suppose you could force the name yourself. There's no reason you have to allow the user to override it.
 
Yeah, I use it straight from BUG, so it lets the user pick it. That works fine, and I don't see a reason to remove it.

Also aparently I'm not the only one with this problem:

NSIS forums, Uninstaller doesn't delete Start Menu Group

In that thread someone makes a reference to needing to set the User as the Uninstaller sometimes messes up between All Users and User Name (as Balderstrom suggested). The response is cryptic though, I don't quite understand the proposed solution.
 
I forget, in the script is whitespace (indentation) important? What you posted to that thread is incorrect in two ways.

First, you need to put the creation of the shortcut itself back inside the BEGIN / END lines, along with creating the folder.

Second, the Delete and RMDir should not be indented from the GET_FOLDER macro. They are all lines at the same level.
 
As far as I know NSIS doesn't use whitespace. At least alot of the script has messed up formating (swapping tabs for spaces etc), and doesn't cause any problems. I really think it's due to the user (all users or named user). In the thread above the person says:
The value of $MultiUser.InstallMode will be AllUsers or CurrentUser. I guess we need a SetShellVarContext push and SetShellVarContext pop.

Unfortunately I'm not clear exactly how to do this.

Edit: Yeah, did the whitespace thing, and no dice.
 
I think they mean that you need to set SetShellVarContext to a value ("current"?) before trying to remove the shortcuts. Actually, before the GET_FOLDER line I bet.

By push and pop, they mean to store the value using Push, change it, remove the shortcuts, and then restore the value using Pop. This is all assuming SetShellVarContext is actually a variable $SetShellVarContext.

Code:
Push $SetShellVarContext
StrCopy $SetShellVarContext "current"

...remove shortcuts...

Pop $SetShellVarContext

I doubt that's all correct, though. They could mean to say that the NSIS compiler itself needs commands to push/pop SetShellVarContext.
 
Well, that's good enough to try. Do I need to define this variable, or is it something NSIS should know already. Anyway, I'll test this some and mess with it, and check back.
 
OK, so here's what I've found out.

SetShellVarContext is blue, and NSIS can use it without setting it as a variable. Using the $SetShellVarContext means you have to set it up as a declared variable though (without the $ I can throw it in the script and it'll still compile). And using Push or Pop, you have to use $SetShellVarContext (not doing so fails to compile). I've tried nearly every variation I could think of regarding this, and either A)It fails to compile, or B)Same old issue, uninstaller refuses to remove the Start Menu shortcut (and folder).
 
That's because it's a command like Push and StrCopy. And it looks like I was correct about my last point: that guy was saying that NSIS needs a way to push/pop it because you can't do it yourself. I don't see a way to access the current value.

Sure, you can declare and use the $SetShellVarContext variable, but then you are shadowing the command. It's like I start calling you "my brother Bill". That doesn't make you my brother, and now I have no way to reference my actual brother Bill. In programming terms, I have "shadowed" his name because he is in the new name's shadow and cannot be seen. In short, doing this has no effect you can use.

So what you could do is pick one for the user during both install and uninstall. The real question (that doesn't need to be answered but is certainly interesting) is why it's different on your system between install and uninstall but the same on mine. :confused:

Put this in you init and un.init:

Code:
SetShellVarContext "all"

Ah, of course if you want to put it into the Firaxis folder in the start menu, you need to figure out where that is (all or current user). :mischief: I personally think you should actually not put it inside Firaxis's folder because a) it's not Firaxis, b) it requires them to dig one level deeper and c) they may not find it. That it makes it more work for you is yet another reason to leave it outside.
 
I have no un.init

All I have is:

Section "Uninstall"
...uninstall stuff
SectionEnd

And I can't figure out how to copy BUG's uninstall setup, because it's :crazyeye: (I've tried, but I can't figure it out, it's all interwoven and I can't follow it, plus it references text stuff, I don't want to use, I just want the uninstaller to uninstall).

Also my main problem with copying BUG's uninstall function un.init is that BUG uses:
!insertmacro MUI_UNGETLANGUAGE
And I'd rather not use language stuff, as that'll overly complicate things.

How can I set up an un.init?

My current uninstaller is just this (and other then not removing the danged Start menu it works):
Spoiler :
Code:
  Section "Uninstall"
	
    ;get mod install path of from the registy
    SetShellVarContext "current"
    ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${MOD_LOC}" "ModInstDir"
    ;Delete Files
    RMDir /r "$0\${MOD_LOC}\*.*"
    ;Remove the installation directory
    RMDir "$0\${MOD_LOC}"
    ;Delete Desktop Shortcut
    Delete "$DESKTOP\${NAME}.lnk"
    ;Delete Quicklaunch Shortcut
    Delete "$QUICKLAUNCH\${SHORT_NAME}.lnk"
    ;Delete Start Menu Shortcut
    !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder
	Delete "$SMPROGRAMS\$StartMenuFolder\${NAME}.lnk"
	RMDir "$SMPROGRAMS\$StartMenuFolder"
    DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${MOD_LOC}"
  SectionEnd
 
Well, browsed around the NSIS forums, and figured out how to set up the uninstall on.init function. But unfortunately still no closer to fixing the Start menu issue :sad:

This is what I have for my uninstaller:

Spoiler :
Code:
  Section "un.Core" SecUnCore

    ;Delete Files
    RMDir /r "$0\${MOD_LOC}\*.*"
    ;Remove the installation directory
    RMDir "$0\${MOD_LOC}"
    ;Delete Desktop Shortcut
    Delete "$DESKTOP\${NAME}.lnk"
    ;Delete Quicklaunch Shortcut
    Delete "$QUICKLAUNCH\${SHORT_NAME}.lnk"
  SectionEnd

  Section "-un.StartMenu" SecUnStartMenu

    ;Delete Start Menu Shortcut
    !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder
	Delete "$SMPROGRAMS\$StartMenuFolder\${NAME}.lnk"
	RMDir "$SMPROGRAMS\$StartMenuFolder"
  SectionEnd

  Section "-un.Registry" SecUnRegistry

    DeleteRegValue "${MOD_REG_ROOT}" "Software\${MOD_LOC}" "Start Menu"
    DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${MOD_LOC}"
  SectionEnd
  
  Section "-un.Uninstaller" SecUnUninstaller
	
	# delete uninstaller
	Delete "$INSTDIR\Uninstall.exe"
  SectionEnd

  Function un.onInit

    ;get mod install path of from the registy
    SetShellVarContext "current"
    ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${MOD_LOC}" "ModInstDir"
  FunctionEnd

I get the exact same behavior as my old setup. No difference at all. [pissed]

For reference this is the entire script:

Spoiler :
Code:
;BTS Install Script
;Written by André Götze aka Jean Elcard, phungus420 & James Nicholls aka NikNaks

;--------------------------------
;Include Modern UI

  !include "MUI2.nsh"
  !include "LogicLib.nsh"

;--------------------------------
;Constants
;These are the variables you need to define for your mod

  !define NAME "Charlemagne" ;Full Name of Mod
  !define VERSION "X.X.X" ;Mod Version Number

  !define MOD_LOC "Charlemagne" ;Name of Mod Folder
  !define SHORT_NAME "Charlemagne" ;Abreviated mod name, example for WolfRevolution I would use WolfRev

  !define FIRAXIS_REG_ROOT "HKLM"	;Do not change this block
  !define MOD_REG_ROOT "HKCU"
  !define FIRAXIS_REG_KEY "Software\Firaxis Games"
  !define BTSREGKEY "SOFTWARE\Firaxis Games\Sid Meier's Civilization 4 - Beyond the Sword"	;Do not change this block

  !define MYBTSDIR "C:\Program Files\Firaxis Games\Sid Meier's Civilization 4\Beyond the Sword" ;Path where your Beyond the Sword .exe is
  !define MYCLSDIR "C:\Program Files\Firaxis Games\Sid Meier's Civilization 4\Beyond the Sword\Mods\${MOD_LOC}" ;Path where your mod is (Leave ${MOD_LOC} on the end of the path)

  !define RAW_ICON "Legends4b.ico"	;place your icon in your mod folder change someicon to the icon's name
  !define ICON "${MYCLSDIR}\${RAW_ICON}" 
  !define MUI_ICON "${ICON}"

;You should not need to change anything below this line
  ;Source Code scripting removed
;--------------------------------
;General

  ;Name and file

  Name "${NAME}"
  !ifdef ICON
  Icon "${ICON}"
  !endif
  OutFile "${NAME} v${VERSION} Setup.exe" 

  ;Default installation folder
  InstallDir ""

  ;Request application privileges for Windows Vista
  RequestExecutionLevel admin

;--------------------------------
;Custom Varaiables

  Var INSTDIR1 ; Mods
  Var StartMenuFolder
  
  Var CurrentPage ; important for directory verification
  
Function findINSTDIR1

	Push $0
	
	ReadRegStr $0 ${FIRAXIS_REG_ROOT} "${BTSREGKEY}" 'INSTALLDIR'
	${If} ${FileExists} $0
		StrCpy $INSTDIR1 $0
		Goto done
	${EndIf}
	
	# standard Civ4:BTS
	ReadRegStr $0 ${FIRAXIS_REG_ROOT} "${FIRAXIS_REG_KEY}\Sid Meier's Civilization 4 - Beyond the Sword" 'INSTALLDIR'
	${If} ${FileExists} $0
		StrCpy $INSTDIR1 $0
		Goto done
	${EndIf}

	
	# Civ4 Complete
	ReadRegStr $0 ${FIRAXIS_REG_ROOT} "${FIRAXIS_REG_KEY}\Sid Meier's Civilization 4 Complete" 'INSTALLDIR'
	${If} ${FileExists} $0
		StrCpy $0 "$0\Beyond the Sword"
		${If} ${FileExists} $0
			StrCpy $INSTDIR1 $0
			Goto done
		${EndIf}
	${EndIf}
	
	# Civ4 Gold
	ReadRegStr $0 ${FIRAXIS_REG_ROOT} "${FIRAXIS_REG_KEY}\Sid Meier's Civilization 4 Gold" 'INSTALLDIR'
	${If} ${FileExists} $0
		StrCpy $0 "$0\Beyond the Sword"
		${If} ${FileExists} $0
			StrCpy $INSTDIR1 $0
			Goto done
		${EndIf}
	${EndIf}
	
done:
	Pop $0

FunctionEnd

;--------------------------------

Function .onInit

  SetShellVarContext "current"
  Call findINSTDIR1
  StrCpy $INSTDIR "$INSTDIR1"

  ReadRegStr $R0 ${FIRAXIS_REG_ROOT} \
  "Software\Microsoft\Windows\CurrentVersion\Uninstall\${MOD_LOC}" \
  "UninstallString"
  StrCmp $R0 "" done

  MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \
  "${NAME} is already installed. $\n$\nDo you wish to uninstall?" \
  IDOK uninst
  Abort

;Run the uninstaller
uninst:
  ClearErrors
  ExecWait '"$INSTDIR\Mods\${MOD_LOC}\Uninstall.exe" _?=$INSTDIR'

done:

FunctionEnd

;--------------------------------
;Interface Settings

  !define MUI_ABORTWARNING
  !define MUI_UNABORTWARNING
  !define MUI_FINISHPAGE_NOAUTOCLOSE
  !define MUI_UNFINISHPAGE_NOAUTOCLOSE
  !define MUI_HEADERIMAGE

  ShowInstDetails show
  ShowUninstDetails show

;--------------------------------
;Pages

  !define MUI_CUSTOMFUNCTION_GUIINIT myOnGUIInit

  ; INSTALLER PAGES:

  !define MUI_WELCOMEPAGE_TITLE "Welcome to the Setup of ${SHORT_NAME} v${VERSION}"
  !define MUI_WELCOMEPAGE_TEXT "This wizard will guide you through the installation of ${NAME}.$\n$\n\
    Please ensure that Civilization 4 is not running while installing, \
    otherwise the installation may not work as expected.$\n$\nVersion ${VERSION}$\n$\nRequires Beyond the Sword 3.17.$\n$\n\
    Click $\"Next$\" to continue."
  !insertmacro MUI_PAGE_WELCOME

  !define MUI_COMPONENTSPAGE_SMALLDESC
  !insertmacro MUI_PAGE_COMPONENTS

  !define MUI_DIRECTORYPAGE_VARIABLE $INSTDIR1
  !define MUI_PAGE_CUSTOMFUNCTION_PRE onInitDirectoryPage1
  !define MUI_PAGE_HEADER_TEXT "${SHORT_NAME} v${VERSION}"
  !define MUI_PAGE_HEADER_SUBTEXT "Please locate your $\"Beyond the Sword$\" folder"
  !define MUI_DIRECTORYPAGE_TEXT_TOP "Setup will install ${NAME} in the Mods folder of the folder below. $\n$\n\
    If the automatic folder detection should have failed, then type in or browse to the correct location. $\n$\n\
    Click Install to complete the installation."
  !define MUI_DIRECTORYPAGE_TEXT_DESTINATION "Your $\"Beyond the Sword$\" folder:"
  !insertmacro MUI_PAGE_DIRECTORY
  !insertmacro MUI_PAGE_STARTMENU Application $StartMenuFolder
  ;Source code scripting removed

  !insertmacro MUI_PAGE_INSTFILES

  !define MUI_FINISHPAGE_RUN "$INSTDIR1\Civ4BeyondSword.exe"
    !define MUI_FINISHPAGE_RUN_PARAMETERS "mod=\${MOD_LOC}"
    !define MUI_FINISHPAGE_RUN_NOTCHECKED
  !insertmacro MUI_PAGE_FINISH

    ;UN INSTALLER PAGES:

  !insertmacro MUI_UNPAGE_WELCOME
  !insertmacro MUI_UNPAGE_INSTFILES
  !insertmacro MUI_UNPAGE_FINISH

;--------------------------------
;Languages

  !insertmacro MUI_LANGUAGE "English"

  LangString DESC_Section1 ${LANG_ENGLISH} "Installs ${NAME} for Beyond the Sword."
  LangString DESC_Section4 ${LANG_ENGLISH} "Adds a shortcut on the Start Menu."
  LangString DESC_Section5 ${LANG_ENGLISH} "Creates a shortcut on the Desktop, allowing you to launch the mod \
                                            without the need to load BtS first."
  LangString DESC_Section6 ${LANG_ENGLISH} "Creates a shortcut on the Quick Launch bar, allowing you to launch \
                                            the mod directly from the task bar."

;--------------------------------
;Installer Sections
    ;the mod files itself:
  Section /o "${MOD_LOC}" Section1
    SectionIn RO
    SetOutPath "$INSTDIR1\Mods\${MOD_LOC}"
    File /r "${MYCLSDIR}\*.*"
      ; write uninstall information to the registry
    WriteRegStr ${FIRAXIS_REG_ROOT} "Software\Microsoft\Windows\CurrentVersion\Uninstall\${MOD_LOC}" "DisplayName" "${NAME}"
    WriteRegStr ${FIRAXIS_REG_ROOT} "Software\Microsoft\Windows\CurrentVersion\Uninstall\${MOD_LOC}" "UninstallString" "$INSTDIR1\Mods\${MOD_LOC}\Uninstall.exe"
    WriteRegStr ${FIRAXIS_REG_ROOT} "Software\Microsoft\Windows\CurrentVersion\Uninstall\${MOD_LOC}" "ModInstDir" "$INSTDIR1\Mods\"
    WriteUninstaller "$INSTDIR1\Mods\${MOD_LOC}\Uninstall.exe"
  SectionEnd

  Section "Start Menu Shortcut" Section4
	!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
		CreateDirectory "$SMPROGRAMS\$StartMenuFolder"
		CreateShortCut "$SMPROGRAMS\$StartMenuFolder\${NAME}.lnk" "$INSTDIR1\Civ4BeyondSword.exe" "mod=\${MOD_LOC}" "$INSTDIR\Mods\${MOD_LOC}\${RAW_ICON}" 0
	!insertmacro MUI_STARTMENU_WRITE_END
  SectionEnd


  Section "Desktop Shortcut" Section5
    CreateShortCut "$DESKTOP\${NAME}.lnk" "$INSTDIR1\Civ4BeyondSword.exe" "mod=\${MOD_LOC}" "$INSTDIR\Mods\${MOD_LOC}\${RAW_ICON}" 0
  SectionEnd

  Section "Quick Launch Shortcut" Section6
    CreateShortCut "$QUICKLAUNCH\${SHORT_NAME}.lnk" "$INSTDIR1\Civ4BeyondSword.exe" "mod=\${MOD_LOC}" "$INSTDIR\Mods\${MOD_LOC}\${RAW_ICON}" 0
  SectionEnd

  !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
    !insertmacro MUI_DESCRIPTION_TEXT ${Section1}  $(DESC_Section1)
    !insertmacro MUI_DESCRIPTION_TEXT ${Section4}  $(DESC_Section4)
    !insertmacro MUI_DESCRIPTION_TEXT ${Section5}  $(DESC_Section5)
    !insertmacro MUI_DESCRIPTION_TEXT ${Section6}  $(DESC_Section6)
  !insertmacro MUI_FUNCTION_DESCRIPTION_END

;--------------------------------
;Uninstaller Section

  Section "un.Core" SecUnCore

    ;Delete Files
    RMDir /r "$0\${MOD_LOC}\*.*"
    ;Remove the installation directory
    RMDir "$0\${MOD_LOC}"
    ;Delete Desktop Shortcut
    Delete "$DESKTOP\${NAME}.lnk"
    ;Delete Quicklaunch Shortcut
    Delete "$QUICKLAUNCH\${SHORT_NAME}.lnk"
  SectionEnd

  Section "-un.StartMenu" SecUnStartMenu

    ;Delete Start Menu Shortcut
    !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder
	Delete "$SMPROGRAMS\$StartMenuFolder\${NAME}.lnk"
	RMDir "$SMPROGRAMS\$StartMenuFolder"
  SectionEnd

  Section "-un.Registry" SecUnRegistry

    DeleteRegValue "${MOD_REG_ROOT}" "Software\${MOD_LOC}" "Start Menu"
    DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${MOD_LOC}"
  SectionEnd
  
  Section "-un.Uninstaller" SecUnUninstaller
	
	# delete uninstaller
	Delete "$INSTDIR\Uninstall.exe"
  SectionEnd

  Function un.onInit

    ;get mod install path of from the registy
    SetShellVarContext "current"
    ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${MOD_LOC}" "ModInstDir"
  FunctionEnd

;--------------------------------
;Installer Functions

  Function myOnGUIInit
    SectionGetFlags ${Section1} $0
    IntOp $R0 $0 | ${SF_SELECTED}
    SectionSetFlags ${Section1} $R0
  FunctionEnd

  Function .onVerifyInstDir
    StrCmp $CurrentPage "DirectoryPage1" check1 valid
    check1:
      IfFileExists "$INSTDIR1\Civ4BeyondSword.exe" valid invalid
    valid:
      Return
    invalid:
      Abort
  FunctionEnd

  Function onInitDirectoryPage1
    StrCpy $CurrentPage "DirectoryPage1"
    ;Section 1 selected?
    SectionGetFlags ${Section1} $0
    IntOp $R0 $0 & ${SF_SELECTED}
    IntCmp $R0 ${SF_SELECTED} checkRegEntry
      Abort ;skip page
    checkRegEntry:
      StrCmp $INSTDIR "" 0 checkDefaultLocation
        StrCpy $INSTDIR1 "" ;we know nothing
        Return
      checkDefaultLocation:
          StrCpy $INSTDIR1 "$INSTDIR" ;found it!
  FunctionEnd
;--------------------------------

Any ideas at all with what is broken? Maybe something messing up with the Registry Keys? Is there any way to force a "$SMPROGRAMS\$StartMenuFolder" check, ie is there a manual registry check, without using the !insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder Macro?

:dunno: :cry: :mad:
 
When you issue this command in the installer:
Delete "$SMPROGRAMS\$StartMenuFolder\${NAME}.lnk"
Prior to doing so, echo "$SMPROGRAMS\$StartMenuFolder\${NAME}.lnk" to a msgBox or echo it to a log. Then we will at least know what it is trying to delete.
 
Back
Top Bottom