mirror of https://github.com/BOINC/boinc.git
152 lines
7.2 KiB
Plaintext
152 lines
7.2 KiB
Plaintext
//
|
|
// IIIIIII SSSSSS
|
|
// II SS InstallShield (R)
|
|
// II SSSSSS (c) 1996-2002, InstallShield Software Corporation
|
|
// II SS All rights reserved.
|
|
// IIIIIII SSSSSS
|
|
//
|
|
//
|
|
// This template script provides the code necessary to build an entry-point
|
|
// function to be called in an InstallScript custom action.
|
|
// Two major functions:
|
|
// CheckUnitedDevices: Check whether there is a previous World Community Agent ( United Devices)
|
|
// DeleteUnitedDevices: Delete United Devices
|
|
//
|
|
//
|
|
// File Name: Setup.rul
|
|
//
|
|
// Description: InstallShield script
|
|
//
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
// Include Ifx.h for built-in InstallScript function prototypes, for Windows
|
|
// Installer API function prototypes and constants, and to declare code for
|
|
// the OnBegin and OnEnd events.
|
|
#include "ifx.h"
|
|
|
|
//including constants
|
|
#include "constants.rul"
|
|
|
|
// Include header file for built-in functions
|
|
#include "isrt.h"
|
|
// Include header file for MSI API functions and constants
|
|
#include "iswi.h"
|
|
|
|
|
|
// The keyword export identifies the function as an entry-point function.
|
|
// The argument it accepts must be a handle to the Installer database.
|
|
export prototype DeleteUnitedDevices(HWND);
|
|
export prototype CheckUnitedDevices(HWND);
|
|
// To Do: Declare global variables, define constants, and prototype user-
|
|
// defined and DLL functions here.
|
|
|
|
|
|
// To Do: Create a custom action for this entry-point function:
|
|
// 1. Right-click on "Custom Actions" in the Sequences/Actions view.
|
|
// 2. Select "Custom Action Wizard" from the context menu.
|
|
// 3. Proceed through the wizard and give the custom action a unique name.
|
|
// 4. Select "Run InstallScript code" for the custom action type, and in
|
|
// the next panel select "DeleteUnitedDevices" (or the new name of the entry-
|
|
// point function) for the source.
|
|
// 5. Click Next, accepting the default selections until the wizard
|
|
// creates the custom action.
|
|
//
|
|
// Once you have made a custom action, you must execute it in your setup by
|
|
// inserting it into a sequence or making it the result of a dialog's
|
|
// control event.
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Function: DeleteUnitedDevices
|
|
//
|
|
// Purpose: This function will be called by the script engine when
|
|
// Windows(TM) Installer executes your custom action (see the "To
|
|
// Do," above).
|
|
// This Script is used to delete United Devices
|
|
//
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
function DeleteUnitedDevices(hMSI)
|
|
// To Do: Declare local variables.
|
|
STRING svName;
|
|
NUMBER nvSize;
|
|
|
|
begin
|
|
// MsiSetProperty(hMSI, "UDProcess", "NotDoneUD");
|
|
RegDBSetDefaultRoot ( HKEY_LOCAL_MACHINE );
|
|
|
|
// Script that will be executed when DeleteUnitedDevices is called.
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
nvSize = 256;
|
|
|
|
// if (RegDBKeyExist (WCG_UD_KEY) < 0) then
|
|
// MessageBox (NO_UD_MSG+"ininstallscriptsetup", SEVERE);
|
|
// else
|
|
|
|
// LaunchApp(KILL_UD_PROCESS, KILL_UD_PROCESS_PARAM);
|
|
if (LaunchAppAndWait ("MsiExec.exe ", UD_UNINSTALL_PARAM,LAAW_OPTION_WAIT) < 0) then
|
|
MessageBox (UD_UNABLE_UNINSTALL_MSG, SEVERE);
|
|
else
|
|
MsiSetProperty(hMSI, "UDAVAILABLE", "No");
|
|
endif;
|
|
|
|
// endif;
|
|
|
|
// MsiSetProperty(hMSI, "UDProcess", "DoneUD");
|
|
// MsiGetProperty(hMSI, "UDProcess",svName, nvSize);
|
|
// MessageBox ("the value of the UDPRocess in checkud function is "+svName+" for testing", INFORMATION);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
// To Do: Create a custom action for this entry-point function:
|
|
// 1. Right-click on "Custom Actions" in the Sequences/Actions view.
|
|
// 2. Select "Custom Action Wizard" from the context menu.
|
|
// 3. Proceed through the wizard and give the custom action a unique name.
|
|
// 4. Select "Run InstallScript code" for the custom action type, and in
|
|
// the next panel select "checkUnitedDevices" (or the new name of the entry-
|
|
// point function) for the source.
|
|
// 5. Click Next, accepting the default selections until the wizard
|
|
// creates the custom action.
|
|
//
|
|
// Once you have made a custom action, you must execute it in your setup by
|
|
// inserting it into a sequence or making it the result of a dialog's
|
|
// control event.
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Function: CheckUnitedDevices
|
|
//
|
|
// Purpose: This function will be called by the script engine when
|
|
// Windows(TM) Installer executes your custom action (see the "To
|
|
// Do," above).
|
|
// This Script is used to check whether United Devices is present
|
|
//
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
function CheckUnitedDevices(hMSI)
|
|
// To Do: Declare local variables.
|
|
STRING svName1;
|
|
NUMBER nvSize;
|
|
|
|
begin
|
|
|
|
RegDBSetDefaultRoot ( HKEY_LOCAL_MACHINE );
|
|
nvSize = 256;
|
|
// Script that will be executed when CheckUnitedDevices is called.
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
MsiSetProperty(hMSI, "UDAVAILABLE", "dontknow");
|
|
if (RegDBKeyExist (WCG_UD_KEY) < 0) then
|
|
// MessageBox (NO_UD_MSG, SEVERE);
|
|
MsiSetProperty(hMSI, "UDAVAILABLE", "No");
|
|
else
|
|
MsiSetProperty(hMSI, "UDAVAILABLE", "Yes");
|
|
endif;
|
|
MsiGetProperty(hMSI, "UDAVAILABLE",svName1, nvSize);
|
|
//MessageBox ("the value of the CheckedUD is "+svName1+" for testing", INFORMATION);
|
|
// MsiSetProperty(hMSI, "UDProcess", "DoneUD");
|
|
// MsiGetProperty(hMSI, "UDProcess",svName1, nvSize);
|
|
// MessageBox ("the value of the UDPRocess in checkud function is "+svName1+" for testing", INFORMATION);
|
|
end;
|
|
|