= Client setup logic for Windows = There are three install types supported by the 5.x generation of BOINC clients. == Single-User Install == Single user installs are the most basic and least prone to failure form of BOINC client installation. It has the following properties: || File Layout: || [wiki:ClientSetupLogicWinFileLayout Standard File Layout] || || File Permissions: || SYSTEM (Full Control) [[BR]] Administrators (Full Control) [[BR]] %USERNAME% (Full Control) || || Launch Mechinism: || Shortcut to boincmgr.exe in the user's 'Startup' folder || == Shared Install == Shared installs are geared towards computers who have multiple user accounts and fast user switching is enabled. The first person to login launches BOINC and all the science applications. If the first person logs out BOINC is shutdown. It has the following properties: || File Layout: || [wiki:ClientSetupLogicWinFileLayout Standard File Layout] || || File Permissions: || SYSTEM (Full Control) [[BR]] Administrators (Full Control) [[BR]] Users (Full Control) || || Launch Mechinism: || Shortcut to boincmgr.exe in the all-users 'Startup' folder || == Service-Mode Install == Service-Mode installs allows BOINC to run even when nobody is logged into the system. When Windows boots up, it'll launch BOINC. An existing user account must be specified to execute BOINC with at startup. This user account will be granted the 'Execute as a Service' user right during the installation process if it doesn't already have it. It has the following properties: || File Layout: || [wiki:ClientSetupLogicWinFileLayout Standard File Layout] || || File Permissions: || SYSTEM (Full Control) [[BR]] Administrators (Full Control) [[BR]] %SERVICE_USERNAME% (Full Control) [[BR]] %USERNAME% (Modify, Read & Execute, List Folder Contents, Read, Write)|| || Launch Mechinism: || Shortcut to boincmgr.exe in the user's 'Startup' folder [[BR]] BOINC will be launched at boot by the Service Control Manager || == Install Details == Installer packages based on the Microsoft Installer technology are divided into two phases. Phase one is the 'User Interface' phase where the installer presents all the questions that need to be answered before a successful installation can occur. Phase two is the 'Execution' phase where the actual installation occurs. Both phases are broken up into a sequence which executes custom actions in a specific order. Each custom action, whether defined by the MSI system or the setup programmer, preforms a specific action. The following custom actions were designed specifically for BOINC: === CAValidateSetupType === The Microsoft Installer technology allows you to install a package without using the 'User Interface', so this custom action validates the input passed to the execution phase. || Execution After: || ValidateProductID || || Execution Condition: || || Pseudocode: {{{ IF SetupType IS NOT NULL IF (SetupType IS 'Single') OR (SetupType IS 'Service') IF (AllUsers IS NOT NULL) OR (IsAdminPagage IS '1') RETURN ERROR END IF ELSE IF (AllUsers IS '1') RETURN ERROR END IF END IF END IF RETURN SUCCESS }}}