Community Forums
Results 1 to 3 of 3

Thread: Check registrys data and install software

  1. #1
    Join Date
    Feb 2017
    Posts
    4

    Check registrys data and install software

    Hello
    I want to create a dialog with 1 edit field for take one parameter in install script mode in Install shield software. This parameter must searched in windows registry (value of a key name or a key name for check is a exists a software in registry or not.If this parameter not exists in registry, call a setup.exe file for installed a software(This software don’t exist in Prerequisites or Objects view) ,else go to after dialog. This parameter can change at any time installation my setup file. I wrote 5 script for it and I use any scripts in my project in OnFirstUIBefore function and in Dlg_SdRegisterUser . actually i don’t know where should use from they or set a other thing in other places. I use my script in view list( install script view and OnFirstUIBefore function and in Dlg_SdRegisterUser ), But I don’t get my target.
    I have 2 question:
    1) how i want to get my target?How script is right?Because maybe i'm wrong path .
    2)For call a setup.exe file of any software(This software don’t exist in Prerequisites or Objects view), must Which function do I use?
    One script is:
    Dlg_SdRegisterUser:
    //I delete company name edit field in SdRegisterUser dialog.
    szMsg = "";
    szTitle1 = "";
    //{{IS_SCRIPT_TAG(Dlg_SdRegisterUser)
    nResult =SdRegisterUser( szTitle, szMsg, szName, szCompany );
    if (nResult = BACK) goto Dlg_SdLicense2;
    nresault2=RegDBKeyExist (szName );
    if((nresault2=1) && (nResult=0)) then
    goto Dlg_SetupType2;
    else
    MessageBox("error in your input", SEVERE); // this line is place for call setup.exe file of software(gusetion 2)
    goto Dlg_SdRegisterUser; // this line is place for call setup.exe file of software(gusetion 2)
    endif;
    //}}IS_SCRIPT_TAG(Dlg_SdRegisterUser)
    ……………………………………………………………………………………………………………………………………………..
    Two script is:
    Dlg_SdRegisterUser:
    //I delete company name edit field in SdRegisterUser dialog.
    szMsg = "";
    szTitle1 = "";
    //{{IS_SCRIPT_TAG(Dlg_SdRegisterUser)
    nResult =SdRegisterUser( szTitle, szMsg, szName, szCompany );
    if (nResult = BACK) goto Dlg_SdLicense2;
    nresault1= RegDBSetDefaultRoot ( nRootKey );
    nresault2=RegDBGetKeyValueEx ( szKey, szName, nvType, svValue, nvSize ) ;
    if(nresault2=nResult) then goto Dlg_SdLicense2;
    else
    MessageBox("Unable to find a qualifying program. " +"Setup will now exit.", SEVERE); // this line is place for call setup.exe file of software(gusetion 2)

    goto Dlg_SdRegisterUser; // this line is place for call setup.exe file of software(gusetion 2)
    endif;
    //}}IS_SCRIPT_TAG(Dlg_SdRegisterUser)
    ……………………………………………………………………………………………………………………………………………
    Three script is:
    Dlg_SdRegisterUser:
    szMsg = "";
    szTitle = "";
    szName= "";
    szCompany= "";
    szSubKey="HKEY_LOCAL_MACHINE\\SOFTWARE\\Adonis\\Test\\12345";
    nResult =SdRegisterUser(szTitle, szMsg, szName, szCompany);
    //nresault2=RegDBKeyExist();
    if (nResult = BACK) goto Dlg_SdLicense2;

    //nresault2=RegDBKeyExist (szKey);
    if ((RegDBKeyExist (szSubKey)=1) && (szName="HKEY_LOCAL_MACHINE\\SOFTWARE\\Adonis\\Test\\12345")) then
    goto Dlg_SetupType2;
    else
    MessageBox("error in your input", SEVERE); // this line is place for call setup.exe file of software(gusetion 2)
    goto Dlg_SdRegisterUser; // this line is place for call setup.exe file of software(gusetion 2)
    endif;
    //nresault2=RegDBKeyExist (szName ); ……………………………………………………………………………………………………………………………….
    four script is:
    Dlg_SdRegisterUser:
    szMsg = "";
    szTitle = "";
    nResult =SdRegisterUser( szTitle, szMsg, szName, szCompany );
    if (nResult = BACK) goto Dlg_SdLicense2;
    szName= szSubKey;
    nresault2=RegDBKeyExist (szSubKey );
    if (szName= szSubKey) then
    goto Dlg_SetupType2;
    else
    MessageBox("error in your input", SEVERE); // this line is place for call setup.exe file of software(gusetion 2).
    goto Dlg_SdRegisterUser; // this line is place for call setup.exe file of software(gusetion 2).
    endif;

    And in OnAppSearch function after abow script :
    function OnAppSearch()
    string szSubKey;
    number nresault2;
    begin
    nresault2=RegDBKeyExist (szSubKey );
    if(nresault2=1) then
    return nresault2;
    endif;
    end;
    and I set value for this script in AppSearch and Reglocator table in my project from below link:
    http://helpnet.installshield.com/ins...ryReadData.htm
    …………………………………………………………………………………………………………………………………………….
    Five script:
    Dlg_SdRegisterUser:
    szMsg = "";
    szTitle = "";
    szName= "";
    szCompany= "";

    nResult =SdRegisterUser(szTitle, szMsg, szName, szCompany);
    if (nResult = BACK) goto Dlg_SdLicense2;
    if ((nResult<0) && (szName="HKEY_LOCAL_MACHINE\\SOFTWARE\\Adonis\\Test\\12345")) then
    goto Dlg_SetupType2;
    else
    MessageBox("error in your input", SEVERE); // this line is place for call setup.exe file of software(gusetion 2).
    goto Dlg_SdRegisterUser; // this line is place for call setup.exe file of software(gusetion 2).
    endif;
    //nresault2=RegDBKeyExist (szName );

    And in OnAppSearch function after abow script :
    function OnAppSearch()
    string szSubKey;
    number nresault;
    begin
    szSubKey="HKEY_LOCAL_MACHINE\\SOFTWARE\\Adonis\\Test\\12345";
    nresault=RegDBKeyExist( szSubKey);
    if ((RegDBKeyExist (szSubKey)<0)) then
    MessageBox("error in your input", SEVERE);
    return nresault;
    endif;
    //end;

    Thanks for your help.

  2. #2
    Join Date
    Jul 2014
    Posts
    16
    Hi

    i) Keep your setup.exe file in SUPPORTDIR folder

    ii) use LaunchAppAndWait function to execute that setup.

    Sample code :

    if ( Registry is not exists ) then
    LaunchAppAndWait(SUPPORTDIR ^ "setup.exe","",WAIT);
    endif;

    Thanks,
    Thananjeyan

  3. #3
    chad.petersen Guest
    That seems awfully complicated. I'd tend to use the Prerequisite Editor under the Tools menu and fill in the blanks to make my own PRQ file. This assumes an MSI with a Setup.exe wrapper. If that is unacceptable then drive on!

    Chad

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •