I was minding my own business, compiling UP ME with a nenw feature, but the compiler was reporting this error:
include: "E:\PortableApps\NSISPortable\App\NSIS\Include\Registry.nsh" !define: "registry::Open" already defined! !include: error in script: "E:\PortableApps\NSISPortable\App\NSIS\Include\Registry.nsh" on line 1 Error in script "C:\Documents and Settings\all\Desktop\Casey\Development\UP ME\Other\UP ME.nsi" on line 82 -- aborting creation process
I was thinking, "What the heck!? This never happened once before!"
I tried redownloading registry.nsh, but the exact same report came...
I doubt if the line: !define registry::Open `!insertmacro registry::Open` could have anything wrong with it. Anyone know how to fix this?????
*Edit:* Here's the code:
;Copyright (C) 2008 Digitxp (Casey C.)
;This software is OSI Certified Open Source Software.
;OSI Certified is a certification mark of the Open Source Initiative.
;This program is free software; you can redistribute it and/or
;modify it under the terms of the GNU General Public License
;as published by the Free Software Foundation; either version 2
;of the License, or (at your option) any later version.
;This program is distributed in the hope that it will be useful,
;but WITHOUT ANY WARRANTY; without even the implied warranty of
;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;GNU General Public License for more details.
;You should have received a copy of the GNU General Public License
;along with this program; if not, write to the Free Software
;Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
;This software shows a lost.exe , defaults FFP, Launches up to 10 exes, launches menu, makes a shortcut, and searches for clamwin, gives IE a custom title, etc. etc.
;To Do: add EjectScript Function, add eject program option, add folder copy.
!define NAME "UP ME"
!define VER "0.9.9.0"
OutFile "..\StartYourApps.exe"
Caption "${NAME} | PortableApps.com"
VIProductVersion "${VER}"
VIAddVersionKey ProductName "${NAME}"
VIAddVersionKey Comments "Enhances the abilities of a Portable Menu."
VIAddVersionKey CompanyName "PortableApps.com"
VIAddVersionKey LegalCopyright "Digitxp"
VIAddVersionKey FileDescription "${NAME}"
VIAddVersionKey FileVersion "${VER}"
VIAddVersionKey ProductVersion "${VER}"
VIAddVersionKey InternalName "${NAME}"
VIAddVersionKey LegalTrademarks "PortableApps.com is a Trademark of Rare Ideas, LLC."
VIAddVersionKey OriginalFilename "${NAME}.exe"
;===They're called variables because they vary.
Var MENULAUNCH
Var MENUEXE
Var START1
Var START2
Var START3
Var START4
Var START5
Var START6
Var START7
Var START8
Var START9
Var START10
Var INIPATH
Var LOSTTEXT
;Var FFP_Path
;Var DefaultFFP
Var DRIVE
Var SHORTCUTPATH
Var SHORTCUTNAME
Var CLAMPATH
Var CLOSEPATH
Var CUSTOMIETITLE
;===Maybe a few runtime switches?
CRCCheck On
WindowIcon Off
SilentInstall Silent
AutoCloseWindow True
RequestExecutionLevel user
XPStyle On
;===Or a few compression switches, perhaps?
SetCompress Auto
SetCompressor /SOLID lzma
SetCompressorDictSize 32
SetDatablockOptimize On
;===Oh, and include these, please...
!include "Registry.nsh"
!include "FileFunc.nsh"
!insertmacro GetRoot
!include "MUI.nsh"
!include "Registry.nsh"
;===Make the icon look pretty, not NSISy
Icon ".\icon.ico"
Section Main
IfFileExists "$EXEDIR\${NAME}.ini" "" NoINI
StrCpy $INIPATH "$EXEDIR\${NAME}.ini"
;===Read the INI, find what to do.
ReadINIStr $LostText $INIPATH "General" LOSTTEXT
ReadINIStr $CLAMPATH $INIPATH "ClamScan" CLAMPATH
;ReadINIStr $DefaultFFP $INIPATH "General" DefaultFFP
;ReadINIStr $FFP_Path $INIPATH "General" FFPPath
ReadINIStr $MENULAUNCH $INIPATH "Execute" MenuStartPath
ReadINIStr $MENUEXE $INIPATH "Execute" MENUEXEName
ReadINIStr $START10 $INIPATH "Execute" Start10
ReadINIStr $START9 $INIPATH "Execute" Start9
ReadINIStr $START8 $INIPATH "Execute" Start8
ReadINIStr $START7 $INIPATH "Execute" Start7
ReadINIStr $START6 $INIPATH "Execute" Start6
ReadINIStr $START5 $INIPATH "Execute" Start5
ReadINIStr $START4 $INIPATH "Execute" Start4
ReadINIStr $START3 $INIPATH "Execute" Start3
ReadINIStr $START2 $INIPATH "Execute" Start2
ReadINIStr $START1 $INIPATH "Execute" Start1
ReadINIStr $CLOSEPATH $INIPATH "Execute" CloseEXEPath
ReadINIStr $SHORTCUTPATH $INIPATH "CustomShortcut" SHORTCUTPATH
ReadINIStr $SHORTCUTNAME $INIPATH "CustomShortcut" SHORTCUTNAME
ReadINIStr $CUSTOMIETITLE $INIPATH "General" CustomIETitle
;ReadINIStr $CLOSEEXE $INIPATH "General" EjectEXE
Goto RealStuff
NoINI:
StrCpy $LostText "Help me! I'm lost! I don't know who I belong to because they never filled out the form! Just walk around and ask! Thanks!"
;StrCpy $FFP-Path "PortableApps\FirefoxPortable\FirefoxPortable.exe"
StrCpy $MENULAUNCH "PortableApps\PortableAppsMenu\PortableAppsMenu.exe"
StrCpy $MENUEXE "PortableAppsMenu.exe"
StrCpy $CLAMPATH ""
RealStuff:
;===Show Lost Text
MessageBox MB_OK|MB_TOPMOST|MB_ICONEXCLAMATION "$LostText"
;===Make a shortcut on the desktop
${GetRoot} $EXEDIR $DRIVE
SetOutPath $DESKTOP
CreateShortcut "$DRIVE Drive.lnk" "$DRIVE:\" "$EXEDIR\Other\PAM-Stick2s.ico" "CONTROL|SHIFT|P"
CreateShortcut "Documents.lnk" "$DRIVE:\Documents\" "$EXEDIR\Other\documents.ico" "CONTROL|SHIFT|D"
StrCmp $SHORTCUTPATH "" ScanViruses
CreateShortcut "$SHORTCUTNAME.lnk" "$SHORTCUTPATH" "$EXEDIR\Other\customicon.ico" "CONTROL|SHIFT|Z"
;===Scan for viruses
ScanViruses:
StrCmp $CLAMPATH "" +1 IETitle
IfFileExists "$EXEDIR\$CLAMPATH\ClamWinPortable.exe" +1 +4
Execwait '"$EXEDIR\$CLAMPATH\App\clamwin\bin\freshclam.exe" --datadir=".\$CLAMPATH\Data\db" --config-file="$CLAMPATH\App\clamwin\bin\freshclam.conf`'
Execwait '"$EXEDIR\$CLAMPATH\App\clamwin\bin\clamscan.exe" --infected --database=".\$CLAMPATH\Data\db" --memory'
Goto LookForMenu
MessageBox MB_OK|MB_ICONEXCLAMATION "There is no Clamwin Portable where specified. Please either disable clamwin scanning or fix the path in the INI file.$\n$\nDon't forget, it should be in the form of 'Folder\Folder\ClamWinPortable'"
;===Default FFP Now
/* StrCmp $DefaultFFP "True" "" LookForMenu
;===Thanks to Ryan McCue for the DefaultMy FFP Code
${Registry::MoveKey} "HKCU\Software\Classes\.shtml" "HKCU\Software\AssociationsBackupbyUPME\.shtml" $R0
${Registry::MoveKey} "HKCU\Software\Classes\.xht" "HKCU\Software\AssociationsBackupbyUPME\.xht" $R0
${Registry::MoveKey} "HKCU\Software\Classes\.xhtm" "HKCU\Software\AssociationsBackupbyUPME\.xhtm" $R0
${Registry::MoveKey} "HKCU\Software\Classes\.xhtml" "HKCU\Software\AssociationsBackupbyUPME\.xhtml" $R0
${Registry::MoveKey} "HKCU\Software\Classes\.htm" "HKCU\Software\AssociationsBackupbyUPME\.htm" $R0
${Registry::MoveKey} "HKCU\Software\Classes\.html" "HKCU\Software\AssociationsBackupbyUPME\.html" $R0
${Registry::MoveKey} "HKCU\Software\Classes\FireFoxHTML"
*/
;Still very beta, to do
IETitle:
;===Make IE PortableApps.com Provided
StrCmp $CUSTOMIETITLE "" LookForMenu
${Registry::MoveValue} "HKCU\Software\Internet Explorer\Main" "Window Title" "HKCU\Software\Internet Explorer\Main" "WindowTitleBackup" $R0
${Registry::Write} "HKCU\Software\Internet Explorer\Main" "Window Title" "$CUSTOMIETITLE" "REG_SZ" $0
Push $0
;===Execution
LookForMenu:
IfFileExists "$EXEDIR\$MENULAUNCH" "" MenuError
LookFile1:
IfFileExists "$EXEDIR\$START1" "" ErrorFile1
LookFile2:
IfFileExists "$EXEDIR\$START2" "" ErrorFile2
LookFile3:
IfFileExists "$EXEDIR\$START3" "" ErrorFile3
LookFile4:
IfFileExists "$EXEDIR\$START4" "" ErrorFile4
LookFile5:
IfFileExists "$EXEDIR\$START5" "" ErrorFile5
LookFile6:
IfFileExists "$EXEDIR\$START6" "" ErrorFile6
LookFile7:
IfFileExists "$EXEDIR\$START7" "" ErrorFile7
LookFile8:
IfFileExists "$EXEDIR\$START8" "" ErrorFile8
LookFile9:
IfFileExists "$EXEDIR\$START9" "" ErrorFile9
LookFile10:
IfFileExists "$EXEDIR\$START10" "" ErrorFile10
Exec "$EXEDIR\$MENULAUNCH"
Exec "$EXEDIR\$START1"
Exec "$EXEDIR\$START2"
Exec "$EXEDIR\$START3"
Exec "$EXEDIR\$START4"
Exec "$EXEDIR\$START5"
Exec "$EXEDIR\$START6"
Exec "$EXEDIR\$START7"
Exec "$EXEDIR\$START8"
Exec "$EXEDIR\$START9"
Exec "$EXEDIR\$START10"
Goto WhileMenuRunning
MenuError:
MessageBox MB_OK|MB_ICONINFORMATION "Sorry, but the path $MENULAUNCH cannot be found, please try to fix this."
Goto LookFile1
ErrorFile1:
;===Don't error a blank, please!
StrCmp $START1 "" LookFile2
MessageBox MB_OK|MB_ICONINFORMATION "Sorry, but the path $START1 cannot be found, please try to fix this."
Goto LookFile2
ErrorFile2:
StrCmp $START2 "" LookFile3
MessageBox MB_OK|MB_ICONINFORMATION "Sorry, but the path $START2 cannot be found, please try to fix this."
Goto LookFile3
ErrorFile3:
StrCmp $START3 "" LookFile4
MessageBox MB_OK|MB_ICONINFORMATION "Sorry, but the path $START3 cannot be found, please try to fix this."
Goto LookFile4
ErrorFile4:
StrCmp $START4 "" LookFile5
MessageBox MB_OK|MB_ICONINFORMATION "Sorry, but the path $START4 cannot be found, please try to fix this."
Goto LookFile5
ErrorFile5:
StrCmp $START5 "" LookFile6
MessageBox MB_OK|MB_ICONINFORMATION "Sorry, but the path $START5 cannot be found, please try to fix this."
Goto LookFile6
ErrorFile6:
StrCmp $START6 "" LookFile7
MessageBox MB_OK|MB_ICONINFORMATION "Sorry, but the path $START6 cannot be found, please try to fix this."
Goto LookFile7
ErrorFile7:
StrCmp $START7 "" LookFile8
MessageBox MB_OK|MB_ICONINFORMATION "Sorry, but the path $START7 cannot be found, please try to fix this."
Goto LookFile8
ErrorFile8:
StrCmp $START8 "" LookFile9
MessageBox MB_OK|MB_ICONINFORMATION "Sorry, but the path $START8 cannot be found, please try to fix this."
Goto LookFile9
ErrorFile9:
StrCmp $START9 "" LookFile10
MessageBox MB_OK|MB_ICONINFORMATION "Sorry, but the path $START9 cannot be found, please try to fix this."
Goto LookFile10
ErrorFile10:
StrCmp $START10 "" Error2
MessageBox MB_OK|MB_ICONINFORMATION "Sorry, but the path $START10 cannot be found, please try to fix this."
Error2:
MessageBox MB_OK|MB_ICONINFORMATION "Apparently you didn't put any entries into the INI file.$\n$\nIf this isn't the case, please put the paths to your exe's starting from the end."
WhileMenuRunning:
Sleep 1000
FindProcDLL::FindProc "$MENUEXEName"
StrCmp $R0 "1" WhileMenuRunning
;CloseUpShop
Sleep 2000
Delete "$DESKTOP\Explore Your Drive.lnk"
Delete "$DESKTOP\Documents.lnk"
StrCmp $Shortcut "Yes" "" +2
Delete "$DESKTOP\$SHORTCUTNAME.lnk"
StrCmp $CLOSEPATH "" +1 +2
Exec $CLOSEPATH
${Registry::Unload}
/* SetOutPath "$TEMP"
File "Ejectscript\Eject.exe"
*/
;Still beta; to do.
SectionEnd
well i don't think that line is even needed; i've never used it. the only thing you need is have the registry plugin installed and include the line
!include "Registry.nsh"and at the end of the script use${registry::Unload}What he said. Post your script for us to see anyway, we can't tell what's going on really without it.
Oh, forgot to unload...
Insert original signature here with Greasemonkey Script.
;===Oh, and include these, please...
!include "Registry.nsh"
!include "FileFunc.nsh"
!insertmacro GetRoot
!include "MUI.nsh"
!include "Registry.nsh"
delete one of the registry.nsh
Code Here Finished With Warnings
after deleting one of those it compliled sussesfully
3 warnings:
unknown variable/constant "Shortcut" detected, ignoring (C:\Documents and Settings\MyUserName\Desktop\turtle\pie.nsi:273)
Variable "MUI_TEMP1" not referenced or never set, wasting memory!
Variable "MUI_TEMP2" not referenced or never set, wasting memory!
Ps. VERY Nice App By The Way
After Creating The Entire .ini File Correctly. I Got Led To The Line 262 Error After It Found All My Starts.
And The CustomShort Shortcut Is Screwed. It Created A Shortcut On My Desktop With A Link To "C:\PortableApps\CAFE\CAFEMod.exe E:\Other\customicon.ico" And The Drive Icon Follows Your App And Doesnt Go To The Desktop.
Hope This App Comes Out Looking Good. Cause I Like It
Na na na, come on!
I'm only supporting this until the new menu comes out (Hopefully the new menu will have these features too.)
Insert original signature here with Greasemonkey Script.
No Problem
Na na na, come on!