Difference between revisions of "Dropbox"

From WPKG | Open Source Software Deployment and Distribution
Jump to: navigation, search
(Dropbox)
Line 1: Line 1:
 
Dropbox for Windows is a client software for use with the popular Dropbox online storage service. For more information see the [http://www.dropbox.com/ Dropbox Homepage].
 
Dropbox for Windows is a client software for use with the popular Dropbox online storage service. For more information see the [http://www.dropbox.com/ Dropbox Homepage].
 +
 +
An alternative to the method below is to use Innosetup [http://www.jrsoftware.org/isinfo.php http://www.jrsoftware.org/isinfo.php]and ISTool [http://sourceforge.net/projects/istool/ http://sourceforge.net/projects/istool/] to create an ISS file and compile it to an installer.  Download the latest dropbox.exe install it on a test system or extract using 7zip.  Copy all the files to two source folders in your Innosetup source folder called 'embedded' fr the BMP files and {app} for all the EXEs and DLLs.  These need to be subfolders of the location of the ISS file.
 +
 +
Open ISTool, load the ISS file and compile and new installer dropbox.version.exe.  Here is my package:
 +
 +
<package id="dropbox"
 +
    name="dropbox"
 +
    revision="%version%"
 +
    reboot="false"
 +
    priority="97">
 +
    <variable name="version" value="1.4.0" />
 +
    <check type="uninstall" condition="exists" path="Dropbox %version%" />
 +
    <install cmd='%SOFTWARE%\Dropbox\Dropbox.%version%.exe /silent' />
 +
    <install architecture="x86" cmd='%comspec% /c copy /y "%ALLUSERSPROFILE%\Start Menu\Programs\Dropbox.lnk" "%AllUsersProfile%\Desktop"'/>
 +
    <install os="windows.+6\.\d{1}\.\d{4}" architecture="x64" cmd='%comspec% /c copy /y "%PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs\Dropbox.lnk" "c:\users\public\Desktop"'/>
 +
    <downgrade include="install" />
 +
    <upgrade include="install" />
 +
    <remove cmd='cmd /C %SETTINGS%\tools\taskkill.exe /F /IM dropbox.exe' ><exit code='1' /><exit code='128' /></remove> 
 +
    <remove architecture="x86" cmd='"%PROGRAMFILES%\dropbox\unins000.exe" /silent' />
 +
    <remove architecture="x64" cmd='"%PROGRAMFILES(x86)%\dropbox\unins000.exe" /silent' />
 +
</package>
 +
 +
Innosetup ISS file:
 +
 +
#define MyAppName "Dropbox"
 +
#define MyAppVerName "Dropbox 1.4.0"
 +
#define MyAppVersion "1.4.0"
 +
#define MyAppPublisher "DropBox (repackaged)"
 +
#define MyAppURL "http://www.getdropbox.com"
 +
#define MyAppExeName "Dropbox.exe"
 +
[Setup]
 +
AppName={#MyAppName}
 +
AppVerName={#MyAppVerName}
 +
AppPublisher={#MyAppPublisher}
 +
AppSupportURL={#MyAppURL}
 +
AppUpdatesURL={#MyAppURL}
 +
DefaultDirName={pf32}\{#MyAppName}
 +
DefaultGroupName={#MyAppName}
 +
OutputDir=.\Output
 +
OutputBaseFilename={#MyAppName}.{#MyAppVersion}
 +
Compression=lzma
 +
SolidCompression=true
 +
DirExistsWarning=no
 +
ShowLanguageDialog=auto
 +
WizardImageFile=embedded\modern-wizard.bmp
 +
WizardSmallImageFile=embedded\modern-header.bmp
 +
ArchitecturesInstallIn64BitMode=x64
 +
[InstallDelete]
 +
Name: {app}\*.*; Type: files; Languages:
 +
[Dirs]
 +
[Files]
 +
Source: {app}\*.*; DestDir: {app}; Flags: ignoreversion recursesubdirs; Excludes: DropboxExt64.14.dll
 +
Source: {app}\DropboxExt64.14.dll; DestDir: {app}; Check: IsWin64
 +
[Registry]
 +
Root: HKLM; Subkey: SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List; ValueType: string; ValueName: {app}\{#MyAppExeName}; ValueData: {app}\{#MyAppExeName}:*:Enabled:Dropbox; Flags: uninsdeletevalue
 +
Root: HKLM32; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\DropboxExt1; ValueType: string; ValueData: {{FB314ED9-A251-47B7-93E1-CDD82E34AF8B}; Flags: uninsdeletekey
 +
Root: HKLM32; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\DropboxExt2; ValueType: string; ValueData: {{FB314EDA-A251-47B7-93E1-CDD82E34AF8B}; Flags: uninsdeletekey
 +
Root: HKLM32; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\DropboxExt3; ValueType: string; ValueData: {{FB314EDB-A251-47B7-93E1-CDD82E34AF8B}; Flags: uninsdeletekey
 +
Root: HKLM; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\DropboxExt1; ValueType: string; ValueData: {{FB314ED9-A251-47B7-93E1-CDD82E34AF8B}; Flags: uninsdeletekey; Check: IsWin64
 +
Root: HKLM; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\DropboxExt2; ValueType: string; ValueData: {{FB314EDA-A251-47B7-93E1-CDD82E34AF8B}; Flags: uninsdeletekey; Check: IsWin64
 +
Root: HKLM; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\DropboxExt3; ValueType: string; ValueData: {{FB314EDB-A251-47B7-93E1-CDD82E34AF8B}; Flags: uninsdeletekey; Check: IsWin64
 +
Root: HKCR; Subkey: *\shellex\ContextMenuHandlers\DropboxExt; ValueType: string; ValueData: {{FB314ED9-A251-47B7-93E1-CDD82E34AF8B}; Flags: uninsdeletekey
 +
Root: HKCR; Subkey: Directory\Background\shellex\ContextMenuHandlers\DropboxExt; ValueType: string; ValueData: {{FB314ED9-A251-47B7-93E1-CDD82E34AF8B}; Flags: uninsdeletekey
 +
Root: HKCR; Subkey: Directory\shellex\ContextMenuHandlers\DropboxExt; ValueType: string; ValueData: {{FB314ED9-A251-47B7-93E1-CDD82E34AF8B}; Flags: uninsdeletekey
 +
Root: HKCR32; Subkey: CLSID\{{FB314ED9-A251-47B7-93E1-CDD82E34AF8B}; ValueType: string; ValueData: DropboxExt; Flags: uninsdeletekey
 +
Root: HKCR32; Subkey: CLSID\{{FB314ED9-A251-47B7-93E1-CDD82E34AF8B}\InProcServer32; ValueType: string; ValueData: {app}\DropboxExt.14.dll
 +
Root: HKCR32; Subkey: CLSID\{{FB314ED9-A251-47B7-93E1-CDD82E34AF8B}\InProcServer32; ValueType: string; ValueName: ThreadingModel; ValueData: Apartment
 +
Root: HKCR32; Subkey: CLSID\{{FB314EDA-A251-47B7-93E1-CDD82E34AF8B}; ValueType: string; ValueData: DropboxExt; Flags: uninsdeletekey
 +
Root: HKCR32; Subkey: CLSID\{{FB314EDA-A251-47B7-93E1-CDD82E34AF8B}\InProcServer32; ValueType: string; ValueData: {app}\DropboxExt.14.dll
 +
Root: HKCR32; Subkey: CLSID\{{FB314EDA-A251-47B7-93E1-CDD82E34AF8B}\InProcServer32; ValueType: string; ValueName: ThreadingModel; ValueData: Apartment
 +
Root: HKCR32; Subkey: CLSID\{{FB314EDB-A251-47B7-93E1-CDD82E34AF8B}; ValueType: string; ValueData: DropboxExt; Flags: uninsdeletekey
 +
Root: HKCR32; Subkey: CLSID\{{FB314EDB-A251-47B7-93E1-CDD82E34AF8B}\InProcServer32; ValueType: string; ValueData: {app}\DropboxExt.14.dll
 +
Root: HKCR32; Subkey: CLSID\{{FB314EDB-A251-47B7-93E1-CDD82E34AF8B}\InProcServer32; ValueType: string; ValueName: ThreadingModel; ValueData: Apartment
 +
Root: HKCR; Subkey: CLSID\{{FB314ED9-A251-47B7-93E1-CDD82E34AF8B}; ValueType: string; ValueData: DropboxExt; Flags: uninsdeletekey; Check: IsWin64
 +
Root: HKCR; Subkey: CLSID\{{FB314ED9-A251-47B7-93E1-CDD82E34AF8B}\InProcServer32; ValueType: string; ValueData: {app}\DropboxExt64.14.dll; Check: IsWin64
 +
Root: HKCR; Subkey: CLSID\{{FB314ED9-A251-47B7-93E1-CDD82E34AF8B}\InProcServer32; ValueType: string; ValueName: ThreadingModel; ValueData: Apartment; Check: IsWin64
 +
Root: HKCR; Subkey: CLSID\{{FB314EDA-A251-47B7-93E1-CDD82E34AF8B}; ValueType: string; ValueData: DropboxExt; Flags: uninsdeletekey; Check: IsWin64
 +
Root: HKCR; Subkey: CLSID\{{FB314EDA-A251-47B7-93E1-CDD82E34AF8B}\InProcServer32; ValueType: string; ValueData: {app}\DropboxExt64.14.dll; Check: IsWin64
 +
Root: HKCR; Subkey: CLSID\{{FB314EDA-A251-47B7-93E1-CDD82E34AF8B}\InProcServer32; ValueType: string; ValueName: ThreadingModel; ValueData: Apartment; Check: IsWin64
 +
Root: HKCR; Subkey: CLSID\{{FB314EDB-A251-47B7-93E1-CDD82E34AF8B}; ValueType: string; ValueData: DropboxExt; Flags: uninsdeletekey; Check: IsWin64
 +
Root: HKCR; Subkey: CLSID\{{FB314EDB-A251-47B7-93E1-CDD82E34AF8B}\InProcServer32; ValueType: string; ValueData: {app}\DropboxExt64.14.dll; Check: IsWin64
 +
Root: HKCR; Subkey: CLSID\{{FB314EDB-A251-47B7-93E1-CDD82E34AF8B}\InProcServer32; ValueType: string; ValueName: ThreadingModel; ValueData: Apartment; Check: IsWin64
 +
[UninstallDelete]
 +
[Icons]
 +
Name: {commonprograms}\{#MyAppName}; Filename: {app}\{#MyAppExeName}
 +
[Tasks]
 +
[CustomMessages]
 +
english.NameAndVersion=%1 version %2
 +
english.AdditionalIcons=Additional icons:
 +
english.CreateDesktopIcon=Create a &desktop icon
 +
english.CreateQuickLaunchIcon=Create a &Quick Launch icon
 +
english.ProgramOnTheWeb=%1 on the Web
 +
english.UninstallProgram=Uninstall %1
 +
english.LaunchProgram=Launch %1
 +
english.AssocFileExtension=&Associate %1 with the %2 file extension
 +
english.AssocingFileExtension=Associating %1 with the %2 file extension...
 +
[Languages]
 +
Name: english; MessagesFile: embedded\english.isl
 +
 +
  
 
Installing Dropbox software was meant to be "easy for end users" which apparently meant that it must be a challenge for administrators. Dropbox 1.0.10 uses an NSIS installer which supports /D[estination irectory] and /S[ilent] switches, but there seems to be no way to use them both in conjunction (see [http://forums.dropbox.com/topic.php?id=15219 this discussion thread] for details). As dropbox installs everything (including binaries!) into the current user's %APPDATA% unless told otherwise, we would need to use the /D switch and script the installation using [http://www.autoitscript.com/autoit3/index.shtml the AutoIt3 scripting language].
 
Installing Dropbox software was meant to be "easy for end users" which apparently meant that it must be a challenge for administrators. Dropbox 1.0.10 uses an NSIS installer which supports /D[estination irectory] and /S[ilent] switches, but there seems to be no way to use them both in conjunction (see [http://forums.dropbox.com/topic.php?id=15219 this discussion thread] for details). As dropbox installs everything (including binaries!) into the current user's %APPDATA% unless told otherwise, we would need to use the /D switch and script the installation using [http://www.autoitscript.com/autoit3/index.shtml the AutoIt3 scripting language].

Revision as of 09:11, 22 May 2012

Dropbox for Windows is a client software for use with the popular Dropbox online storage service. For more information see the Dropbox Homepage.

An alternative to the method below is to use Innosetup http://www.jrsoftware.org/isinfo.phpand ISTool http://sourceforge.net/projects/istool/ to create an ISS file and compile it to an installer. Download the latest dropbox.exe install it on a test system or extract using 7zip. Copy all the files to two source folders in your Innosetup source folder called 'embedded' fr the BMP files and {app} for all the EXEs and DLLs. These need to be subfolders of the location of the ISS file.

Open ISTool, load the ISS file and compile and new installer dropbox.version.exe. Here is my package:

<package id="dropbox" 
    name="dropbox" 
    revision="%version%" 
    reboot="false"
    priority="97">
    <variable name="version" value="1.4.0" />
    <check type="uninstall" condition="exists" path="Dropbox %version%" />
    <install cmd='%SOFTWARE%\Dropbox\Dropbox.%version%.exe /silent' />
    <install architecture="x86" cmd='%comspec% /c copy /y "%ALLUSERSPROFILE%\Start Menu\Programs\Dropbox.lnk" "%AllUsersProfile%\Desktop"'/>
    <install os="windows.+6\.\d{1}\.\d{4}" architecture="x64" cmd='%comspec% /c copy /y "%PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs\Dropbox.lnk" "c:\users\public\Desktop"'/>
    <downgrade include="install" />
    <upgrade include="install" />
    <remove cmd='cmd /C %SETTINGS%\tools\taskkill.exe /F /IM dropbox.exe' ><exit code='1' /><exit code='128' /></remove>  
    <remove architecture="x86" cmd='"%PROGRAMFILES%\dropbox\unins000.exe" /silent' />
    <remove architecture="x64" cmd='"%PROGRAMFILES(x86)%\dropbox\unins000.exe" /silent' />
</package>

Innosetup ISS file:

#define MyAppName "Dropbox"
#define MyAppVerName "Dropbox 1.4.0"
#define MyAppVersion "1.4.0"
#define MyAppPublisher "DropBox (repackaged)"
#define MyAppURL "http://www.getdropbox.com"
#define MyAppExeName "Dropbox.exe"
[Setup]
AppName={#MyAppName}
AppVerName={#MyAppVerName}
AppPublisher={#MyAppPublisher}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf32}\{#MyAppName}
DefaultGroupName={#MyAppName}
OutputDir=.\Output
OutputBaseFilename={#MyAppName}.{#MyAppVersion}
Compression=lzma
SolidCompression=true
DirExistsWarning=no
ShowLanguageDialog=auto
WizardImageFile=embedded\modern-wizard.bmp
WizardSmallImageFile=embedded\modern-header.bmp
ArchitecturesInstallIn64BitMode=x64
[InstallDelete]
Name: {app}\*.*; Type: files; Languages: 
[Dirs]
[Files]
Source: {app}\*.*; DestDir: {app}; Flags: ignoreversion recursesubdirs; Excludes: DropboxExt64.14.dll
Source: {app}\DropboxExt64.14.dll; DestDir: {app}; Check: IsWin64
[Registry]
Root: HKLM; Subkey: SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List; ValueType: string; ValueName: {app}\{#MyAppExeName}; ValueData: {app}\{#MyAppExeName}:*:Enabled:Dropbox; Flags: uninsdeletevalue
Root: HKLM32; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\DropboxExt1; ValueType: string; ValueData: {{FB314ED9-A251-47B7-93E1-CDD82E34AF8B}; Flags: uninsdeletekey
Root: HKLM32; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\DropboxExt2; ValueType: string; ValueData: {{FB314EDA-A251-47B7-93E1-CDD82E34AF8B}; Flags: uninsdeletekey
Root: HKLM32; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\DropboxExt3; ValueType: string; ValueData: {{FB314EDB-A251-47B7-93E1-CDD82E34AF8B}; Flags: uninsdeletekey
Root: HKLM; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\DropboxExt1; ValueType: string; ValueData: {{FB314ED9-A251-47B7-93E1-CDD82E34AF8B}; Flags: uninsdeletekey; Check: IsWin64
Root: HKLM; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\DropboxExt2; ValueType: string; ValueData: {{FB314EDA-A251-47B7-93E1-CDD82E34AF8B}; Flags: uninsdeletekey; Check: IsWin64
Root: HKLM; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\DropboxExt3; ValueType: string; ValueData: {{FB314EDB-A251-47B7-93E1-CDD82E34AF8B}; Flags: uninsdeletekey; Check: IsWin64
Root: HKCR; Subkey: *\shellex\ContextMenuHandlers\DropboxExt; ValueType: string; ValueData: {{FB314ED9-A251-47B7-93E1-CDD82E34AF8B}; Flags: uninsdeletekey
Root: HKCR; Subkey: Directory\Background\shellex\ContextMenuHandlers\DropboxExt; ValueType: string; ValueData: {{FB314ED9-A251-47B7-93E1-CDD82E34AF8B}; Flags: uninsdeletekey
Root: HKCR; Subkey: Directory\shellex\ContextMenuHandlers\DropboxExt; ValueType: string; ValueData: {{FB314ED9-A251-47B7-93E1-CDD82E34AF8B}; Flags: uninsdeletekey
Root: HKCR32; Subkey: CLSID\{{FB314ED9-A251-47B7-93E1-CDD82E34AF8B}; ValueType: string; ValueData: DropboxExt; Flags: uninsdeletekey
Root: HKCR32; Subkey: CLSID\{{FB314ED9-A251-47B7-93E1-CDD82E34AF8B}\InProcServer32; ValueType: string; ValueData: {app}\DropboxExt.14.dll
Root: HKCR32; Subkey: CLSID\{{FB314ED9-A251-47B7-93E1-CDD82E34AF8B}\InProcServer32; ValueType: string; ValueName: ThreadingModel; ValueData: Apartment
Root: HKCR32; Subkey: CLSID\{{FB314EDA-A251-47B7-93E1-CDD82E34AF8B}; ValueType: string; ValueData: DropboxExt; Flags: uninsdeletekey
Root: HKCR32; Subkey: CLSID\{{FB314EDA-A251-47B7-93E1-CDD82E34AF8B}\InProcServer32; ValueType: string; ValueData: {app}\DropboxExt.14.dll
Root: HKCR32; Subkey: CLSID\{{FB314EDA-A251-47B7-93E1-CDD82E34AF8B}\InProcServer32; ValueType: string; ValueName: ThreadingModel; ValueData: Apartment
Root: HKCR32; Subkey: CLSID\{{FB314EDB-A251-47B7-93E1-CDD82E34AF8B}; ValueType: string; ValueData: DropboxExt; Flags: uninsdeletekey
Root: HKCR32; Subkey: CLSID\{{FB314EDB-A251-47B7-93E1-CDD82E34AF8B}\InProcServer32; ValueType: string; ValueData: {app}\DropboxExt.14.dll
Root: HKCR32; Subkey: CLSID\{{FB314EDB-A251-47B7-93E1-CDD82E34AF8B}\InProcServer32; ValueType: string; ValueName: ThreadingModel; ValueData: Apartment
Root: HKCR; Subkey: CLSID\{{FB314ED9-A251-47B7-93E1-CDD82E34AF8B}; ValueType: string; ValueData: DropboxExt; Flags: uninsdeletekey; Check: IsWin64
Root: HKCR; Subkey: CLSID\{{FB314ED9-A251-47B7-93E1-CDD82E34AF8B}\InProcServer32; ValueType: string; ValueData: {app}\DropboxExt64.14.dll; Check: IsWin64
Root: HKCR; Subkey: CLSID\{{FB314ED9-A251-47B7-93E1-CDD82E34AF8B}\InProcServer32; ValueType: string; ValueName: ThreadingModel; ValueData: Apartment; Check: IsWin64
Root: HKCR; Subkey: CLSID\{{FB314EDA-A251-47B7-93E1-CDD82E34AF8B}; ValueType: string; ValueData: DropboxExt; Flags: uninsdeletekey; Check: IsWin64
Root: HKCR; Subkey: CLSID\{{FB314EDA-A251-47B7-93E1-CDD82E34AF8B}\InProcServer32; ValueType: string; ValueData: {app}\DropboxExt64.14.dll; Check: IsWin64
Root: HKCR; Subkey: CLSID\{{FB314EDA-A251-47B7-93E1-CDD82E34AF8B}\InProcServer32; ValueType: string; ValueName: ThreadingModel; ValueData: Apartment; Check: IsWin64
Root: HKCR; Subkey: CLSID\{{FB314EDB-A251-47B7-93E1-CDD82E34AF8B}; ValueType: string; ValueData: DropboxExt; Flags: uninsdeletekey; Check: IsWin64
Root: HKCR; Subkey: CLSID\{{FB314EDB-A251-47B7-93E1-CDD82E34AF8B}\InProcServer32; ValueType: string; ValueData: {app}\DropboxExt64.14.dll; Check: IsWin64
Root: HKCR; Subkey: CLSID\{{FB314EDB-A251-47B7-93E1-CDD82E34AF8B}\InProcServer32; ValueType: string; ValueName: ThreadingModel; ValueData: Apartment; Check: IsWin64
[UninstallDelete]
[Icons]
Name: {commonprograms}\{#MyAppName}; Filename: {app}\{#MyAppExeName}
[Tasks]
[CustomMessages]
english.NameAndVersion=%1 version %2
english.AdditionalIcons=Additional icons:
english.CreateDesktopIcon=Create a &desktop icon
english.CreateQuickLaunchIcon=Create a &Quick Launch icon
english.ProgramOnTheWeb=%1 on the Web
english.UninstallProgram=Uninstall %1
english.LaunchProgram=Launch %1
english.AssocFileExtension=&Associate %1 with the %2 file extension
english.AssocingFileExtension=Associating %1 with the %2 file extension...
[Languages]
Name: english; MessagesFile: embedded\english.isl


Installing Dropbox software was meant to be "easy for end users" which apparently meant that it must be a challenge for administrators. Dropbox 1.0.10 uses an NSIS installer which supports /D[estination irectory] and /S[ilent] switches, but there seems to be no way to use them both in conjunction (see this discussion thread for details). As dropbox installs everything (including binaries!) into the current user's %APPDATA% unless told otherwise, we would need to use the /D switch and script the installation using the AutoIt3 scripting language.

NOTE: http://lists.wpkg.org/pipermail/wpkg-users/2011-February/007271.html has somewhat detailed instructions by Jean-Jacques Moulis how to repack dropbox to make it install correctly without any autoit tweaks.

Package file

This is the package definition for dropbox installation.

<?xml version="1.0" encoding="UTF-8"?>
<packages>
<package id="dropbox" name="Dropbox client 1.0.10" revision="1" reboot="false" priority="0">
 <check type="logical" condition="and">
  <check type="uninstall" condition="exists" path="Dropbox" />
  <check type="file" condition="versiongreaterorequal" path="%PROGRAMFILES%\dropbox\dropbox.exe" value="1.0.10.0" />
 </check>
 <install cmd='"%SOFTWARE%\autoit\AutoIt3.exe" "%SOFTWARE%\dropbox\dropbox.au3"' />
 <remove cmd='"%PROGRAMFILES%\dropbox\uninstall.exe" /S' />
 <remove cmd='%WINDIR%\system32\cmd /c rd /S "%ALLUSERSPROFILE%\Start Menu\Programs\Dropbox"' />
</package>
</packages>

Autoit script for "silent" dropbox install

Save this script as dropbox.au3 to the %SOFTWARE%\dropbox directory and modify the $DROPBOXINSTALLER variable to reflect your environment.

Opt('WinDetectHiddenText', 1)
;Get environment variable
$SOFTWARE=EnvGet("SOFTWARE")
;Path and filename of the installer executable
$DROPBOXINSTALLER="""" & $SOFTWARE & "\dropbox\Dropbox 1.0.10.exe"""
;Path of the desired install destination
$DROPBOXINSTALLPATH=@ProgramFilesDir & "\Dropbox"

; Run Dropbox installer
Run($DROPBOXINSTALLER & " /D=" & $DROPBOXINSTALLPATH, "", @SW_HIDE)
If @error <> 0  Then 
	MsgBox(0, "Run failed", "The ""Run"" command failed for " & $DROPBOXINSTALLER & " /D=" & $DROPBOXINSTALLPATH & " - exiting", 5)
	Exit
EndIf
;Wait for the installer window to appear and activate it
WinWait("Dropbox Setup", "Click Install to start the installation")
WinActivate("Dropbox Setup", "Click Install to start the installation")
;Click the "Install" button
If ControlClick("Dropbox Setup", "Click Install to start the installation", "[CLASS:Button; INSTANCE:2]")=0 Then
	MsgBox(0, "Autoit Dropbox install script", "Something's wrong: The ControlClick used to start the installation returned failure - exiting", 5)
	Exit
EndIf

;Wait for the installation to complete and the Dropbox account entry dialog to appear, close the window
WinWait("Dropbox Setup", "I don't have a Dropbox account", 120)
WinActivate("Dropbox Setup", "I don't have a Dropbox account")
WinClose("Dropbox Setup", "I don't have a Dropbox account")
WinWait("Exit Dropbox", "Are you sure", 20)
If ControlClick("Exit Dropbox", "Are you sure", "[CLASS:Button; INSTANCE:1]")=0 Then
	MsgBox(0, "Autoit Dropbox install script", "Something's wrong: The ControlClick used to confirm the 'are you sure' dialog returned failure - proceeding with file copy", 5)
EndIf

;Copy the program group to %ALLUSERSPROFILE%
If DirCopy(@ProgramsDir & "\Dropbox", @ProgramsCommonDir & "\Dropbox", 1) = 0 Then
	MsgBox(0, "Autoit Dropbox install script", "Something's wrong: error copying the " & @StartMenuDir & "\Programme\Dropbox directory", 5)
EndIf

;If you want to copy the automatic startup entry to %ALLUSERSPROFILE% as well, uncomment these lines
;If FileCopy(@StartupDir & "\Dropbox.lnk", @StartupCommonDir & "\Dropbox.lnk") = 0 Then
;	MsgBox(0, "Autoit Dropbox install script", "Something's wrong: error copying the " & @StartupDir & "Dropbox.lnk file", 5)
;EndIf

;Installation complete
Exit