cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
k_katselashvili
Pilgrim

Registry key installation requirement

Hello,

I'm trying to create installation requirement, basically the goal is to verify that ASP.NET is installed by checking if registry key exists,
but when I run setup.exe it can't find the registry key.

I'm using InstallShield Professional 2016 Basic MSI Project.

Steps:
1. Create a custom software condition
2. Choose the item you want ot search by from the list below: Registry entry
3. a) Registry root: HKEY_LOCAL_MACHINE
b) Registry key: SOFTWARE\Microsoft\InetStp\Components\ASPNET45
c) Registry value (optional): tried leave empty and with value 1
d) Search the 64-bit portion of the registry: unchecked/checked (tried both)
4. a) Your installation will be allowed to proceed if the search you created is: FOUND
b) Text to display: mymessage

What am I doing wrong or is there some other workaround?
Labels (1)
0 Kudos
4 Replies
JSClark
Pilgrim

Re: Registry key installation requirement

Have you tried System Search under Behavior and Logic?
0 Kudos
k_katselashvili
Pilgrim

Re: Registry key installation requirement

JSClark wrote:
Have you tried System Search under Behavior and Logic?


It creates record under System Search automatically and yes I tried using System Search, nothing works for now
0 Kudos
beti17
Pilgrim

Check data in registrys windows and call .exe file

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/installshield22helplib/helplibrary/FAQRegistryReadData.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.
0 Kudos
beti17
Pilgrim

Check data in registrys windows and call .exe file

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/installshield22helplib/helplibrary/FAQRegistryReadData.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.
0 Kudos