This website uses cookies. By clicking Accept, you consent to the use of cookies. Click Here to learn more about how we use cookies.
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
floriand
Level 3
- Revenera Community
- :
- About floriand
Jan 10, 2019
10:43 AM
Hello, I would like to know if it's possible to have a single installer for 32 and 64 bits OS. Currently, i have an .ism file with release flags in order to separate 32 and 64 bits components. In the release view i have 2 releases, one for the 32 bits OS and another for 64 bits OS. When i build my releases, the files goes to 2 differents folders. When i look at the generated files, i can see that many files are duplicated : 32bits components and common components are in the two release folders (x64 and x86 OS). I've changed the setup.exe and msi filenames in the two releases (setup_x86.exe and setup_x86.msi for 32 bits OS and setup_x64.exe and setup_x64.msi for 64 bits OS). Is there a way in installshield to have a single installer that merge the 2 release folders ? Or do you know how could i do that ? Let me know if i'm not clear enough. Thanks in advance.
... View more
Labels
- Labels:
-
InstallShield 2016
Jan 09, 2019
07:43 AM
Hello, I've created an installsuite project with an ism package in it. After building the release, when i launch the setup i do not see the UI for the ism package. I've tried to put MSI command line parameters (in package view \ common tab \ operation \ install \ MSI command line) like /qf or UILevel=INSTALLUILEVEL_FULL but it doesn't work (or maybe i'm missing something). /qf throw an exception 80070667 (invalid command line) UILevel=INSTALLUILEVEL_FULL or UILevel=5 does not throw exception, but the UI is not visible. What should i do to see the UI of my ism project ? Thanks in advance.
... View more
Labels
- Labels:
-
InstallShield 2016
Dec 20, 2018
10:18 AM
I think that i've found the solution, i've suppressed #include "isrt.h" and #include "iswi.h". Then i've used SuiteSetProperty instead of MsiSetProperty.
... View more
Dec 20, 2018
07:22 AM
Hello, I'm trying to create a suite advanced UI project with an installscript in it. When i compile my sript i get an error C8025 MsiSetProperty : undefined identifier. I don't know where is the problem. Here is my installscript : //////////////////////////////////////////////////////////////////////////////// // // 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. // // // 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" // 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 MyFunction() as an entry-point function. // The argument it accepts must be a handle to the Installer database. prototype LONG kernel32.GetBinaryTypeA (BYVAL STRING , BYREF INT ); export prototype SetOfficeBitnessProperty(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 "MyFunction" (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. /////////////////////////////////////////////////////////////////////////////// // // Definition de la propriété OFFICEBITNESS (permet de savoir si excel est 32 ou 64 bits) // http://codes-sources.commentcamarche.net/forum/affich-1611755-identifier-le-type-d-un-fichier-exe // /////////////////////////////////////////////////////////////////////////////// function SetOfficeBitnessProperty(hMSI) NUMBER nBinaryType; STRING svExcelFilePath; NUMBER nvType, nvSize; begin try RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE); RegDBGetKeyValueEx("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\excel.exe","",nvType,svExcelFilePath,nvSize); //MessageBox("EXCELFILEPATH \n" + svExcelFilePath, SEVERE); if GetBinaryTypeA(svExcelFilePath, nBinaryType)>0 then if (nBinaryType=6) then //64 bits MsiSetProperty(hMSI, "ISOFFICE64", "1"); else //32 bits MsiSetProperty(hMSI, "ISOFFICE32", "1"); endif; else //Rechecherche si le chemin comporte x86 ou x64 (WindowsApp) if StrFind(svExcelFilePath,"x86")<0 && StrFind(svExcelFilePath,"x64")<0 then MessageBox("EXCEL FILE PATH \n" + "Impossible to determine Office bitness" , SEVERE); return ERROR_INSTALL_FAILURE; else if StrFind(svExcelFilePath,"x86")<0 then //64 bits MsiSetProperty(hMSI, "ISOFFICE64", "1"); else //32 bits MsiSetProperty(hMSI, "ISOFFICE32", "1"); endif; endif; endif; catch MessageBox("SetOfficeBitnessProperty Error \n" + Err.Number + "\n" + Err.Description + "\n" + Err.LastDllError , SEVERE); return ERROR_INSTALL_FAILURE; endcatch; end; Thanks in advance
... View more
Labels
- Labels:
-
InstallShield 2016
Dec 19, 2018
07:40 AM
I already have the premier edition, so i will test it. Thank you very much Markus:)
... View more
Dec 19, 2018
05:16 AM
It's an exe file, but i can extract the AceRedist.msi from it. For the suite (i don't know it yet), does it means i need to redo my installer from scratch ?
... View more
Dec 19, 2018
03:04 AM
Hello Markus and thank you for your answer. I can't do that because our product has to be installed on any office version (office 2007, 2010, 2013, 2016, 365, 2019 desktop and store versions, x86 and x64 versions). So i can't check a registry key in order to know which office version is installed (maybe it's possible, but i don't know how). That's why i've tried to use an installscript function which allow to detect office bitness. Here is my installscript : //////////////////////////////////////////////////////////////////////////////// // // 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. // // // 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" // 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 MyFunction() as an entry-point function. // The argument it accepts must be a handle to the Installer database. prototype LONG kernel32.GetBinaryTypeA (BYVAL STRING , BYREF INT ); export prototype SetOfficeBitnessProperty(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 "MyFunction" (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. /////////////////////////////////////////////////////////////////////////////// // // Definition de la propriété OFFICEBITNESS (permet de savoir si excel est 32 ou 64 bits) // http://codes-sources.commentcamarche.net/forum/affich-1611755-identifier-le-type-d-un-fichier-exe // /////////////////////////////////////////////////////////////////////////////// function SetOfficeBitnessProperty(hMSI) NUMBER nBinaryType; STRING svExcelFilePath; NUMBER nvType, nvSize; begin try RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE); RegDBGetKeyValueEx("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\excel.exe","",nvType,svExcelFilePath,nvSize); //MessageBox("EXCELFILEPATH \n" + svExcelFilePath, SEVERE); if GetBinaryTypeA(svExcelFilePath, nBinaryType)>0 then if (nBinaryType=6) then //64 bits MsiSetProperty(hMSI, "ISOFFICE64", "1"); else //32 bits MsiSetProperty(hMSI, "ISOFFICE32", "1"); endif; else //Rechecherche si le chemin comporte x86 ou x64 (WindowsApp) if StrFind(svExcelFilePath,"x86")<0 && StrFind(svExcelFilePath,"x64")<0 then MessageBox("EXCEL FILE PATH \n" + "Impossible to determine Office bitness" , SEVERE); return ERROR_INSTALL_FAILURE; else if StrFind(svExcelFilePath,"x86")<0 then //64 bits MsiSetProperty(hMSI, "ISOFFICE64", "1"); else //32 bits MsiSetProperty(hMSI, "ISOFFICE32", "1"); endif; endif; endif; catch MessageBox("SetOfficeBitnessProperty Error \n" + Err.Number + "\n" + Err.Description + "\n" + Err.LastDllError , SEVERE); return ERROR_INSTALL_FAILURE; endcatch; end; The problem with my current solution, is that i can't use the MSIProperties i have created in the prerequisite condition.
... View more
Dec 18, 2018
10:18 AM
Hello, I have a basic MSI project. This project must install access database engine x86 or x64 depending on office version on the customer computer. It is not possible to install it as a prerequisite because before install i need to know which office version is installed on the computer. To detect office bitness, i have an installscript function that works well, but i don't know how / when to run the access database engine exe file. Could you help me ? Thanks in advance.
... View more
Labels
- Labels:
-
InstallShield 2016
Oct 09, 2017
10:53 AM
I have found it by myself Here is the final code (reading ini file in the install.exe folder) [CODE]function SetDatabaseDir(hMSI) #define MYSECTION "ProductConfiguration" #define MYKEY "QuizzBoxDataDefaultFolder" STRING svFolder; STRING svCurrentDir; STRING svIniFile; begin try svCurrentDir=SRCDIR; if svCurrentDir != "" then svIniFile=svCurrentDir + "\\QB_Installshield.ini"; if Is(FILE_EXISTS,svIniFile) then //MessageBox(svCurrentDir, INFORMATION); GetProfString(svIniFile,MYSECTION,MYKEY,svFolder); StrReplace(svFolder,"[WINSYSDISK]", WINSYSDISK, 0); StrReplace(svFolder,"[FOLDER_COMMON_APPDATA]", FOLDER_COMMON_APPDATA, 0); MsiSetTargetPath(hMSI, "DATABASEDIR", svFolder + "QuizzboxData" + "\\"); endif ; endif; catch //MessageBox("SetOfficeBitnessProperty Error \n" + Err.Number + "\n" + Err.Description + "\n" + Err.LastDllError , SEVERE); endcatch; end;[/CODE] I've found useful informations here http://helpnet.installshield.com/installshield22helplib/Subsystems/installshield22langref/installshield22langref.htm#CSHID=helplibrary%2FLangrefGetSystemInfo_Example.htm|StartTopic=helplibrary%2FLangrefGetSystemInfo_Example.htm
... View more
Oct 09, 2017
10:50 AM
I've found it by myself Here is the final code reading ini file [CODE]function SetDatabaseDir(hMSI) #define MYSECTION "ProductConfiguration" #define MYKEY "QuizzBoxDataDefaultFolder" STRING svFolder; STRING svCurrentDir; STRING svIniFile; begin try svCurrentDir=SRCDIR; if svCurrentDir != "" then svIniFile=svCurrentDir + "\\QB_Installshield.ini"; if Is(FILE_EXISTS,svIniFile) then //MessageBox(svCurrentDir, INFORMATION); GetProfString(svIniFile,MYSECTION,MYKEY,svFolder); StrReplace(svFolder,"[WINSYSDISK]", WINSYSDISK, 0); StrReplace(svFolder,"[FOLDER_COMMON_APPDATA]", FOLDER_COMMON_APPDATA, 0); MsiSetTargetPath(hMSI, "DATABASEDIR", svFolder + "QuizzboxData" + "\\"); endif ; endif; catch //MessageBox("SetOfficeBitnessProperty Error \n" + Err.Number + "\n" + Err.Description + "\n" + Err.LastDllError , SEVERE); endcatch; end;[/CODE] I have to use WINSYSDISK and FOLDER_COMMON_APPDATA in my case. I've found it there : Installscript Language Reference
... View more
Oct 06, 2017
03:30 AM
Hello, I would like to change the default DATABASEDIR for my end-users dynamically. Example : For customer1, the default databasedir will be [WindowsVolume]MyDatabase For customer2, the default databasedir will be [CommonAppDataFolder]SomeFolder\MyDatabase End-users can change this path through the user interface dialog "DatabaseFolder". I have created an installscript function as follows (i know that this function is not complete) : #include "isrt.h" #include "iswi.h" function SetDatabaseDir(hMSI) STRING svFolder; NUMBER nvSize; begin nvSize = 256; MsiGetProperty (hMSI, "WindowsVolume", svFolder, nvSize); // this doesn't work // or MsiGetProperty (hMSI, "CommonAppDataFolder", svFolder, nvSize); // this doesn't work too MsiSetProperty(hMSI, "DATABASEDIR", svFolder + "MyDatabase"); end; This function is launched by a custom action that runs "After cost finalize" in the install exec sequence. Is it possible to do that ? what am i doing wrong ? Thanks in advance.
... View more
Labels
- Labels:
-
InstallShield 2013
Latest posts by floriand
Subject | Views | Posted |
---|---|---|
1088 | Jan 10, 2019 10:43 AM | |
1082 | Jan 09, 2019 07:43 AM | |
2484 | Dec 20, 2018 10:18 AM | |
2642 | Dec 20, 2018 07:22 AM | |
6239 | Dec 19, 2018 07:40 AM | |
6239 | Dec 19, 2018 05:16 AM | |
6239 | Dec 19, 2018 03:04 AM | |
6517 | Dec 18, 2018 10:18 AM | |
2788 | Oct 09, 2017 10:53 AM | |
2788 | Oct 09, 2017 10:50 AM |
Activity Feed
- Posted Single Setup for 32 and 64 bits platform on InstallShield Forum. Jan 10, 2019 10:43 AM
- Posted Display msi UI for an ism package in installsuite on InstallShield Forum. Jan 09, 2019 07:43 AM
- Tagged Display msi UI for an ism package in installsuite on InstallShield Forum. Jan 09, 2019 07:43 AM
- Tagged Display msi UI for an ism package in installsuite on InstallShield Forum. Jan 09, 2019 07:43 AM
- Tagged Display msi UI for an ism package in installsuite on InstallShield Forum. Jan 09, 2019 07:43 AM
- Posted Re: error C8025 MsiSetProperty : undefined identifier on InstallShield Forum. Dec 20, 2018 10:18 AM
- Posted error C8025 MsiSetProperty : undefined identifier on InstallShield Forum. Dec 20, 2018 07:22 AM
- Posted Re: Install Access database engine x86 or x64 conditionnaly on InstallShield Forum. Dec 19, 2018 07:40 AM
- Posted Re: Install Access database engine x86 or x64 conditionnaly on InstallShield Forum. Dec 19, 2018 05:16 AM
- Posted Re: Install Access database engine x86 or x64 conditionnaly on InstallShield Forum. Dec 19, 2018 03:04 AM
- Posted Install Access database engine x86 or x64 conditionnaly on InstallShield Forum. Dec 18, 2018 10:18 AM
- Tagged Install Access database engine x86 or x64 conditionnaly on InstallShield Forum. Dec 18, 2018 10:18 AM
- Tagged Install Access database engine x86 or x64 conditionnaly on InstallShield Forum. Dec 18, 2018 10:18 AM
- Tagged Install Access database engine x86 or x64 conditionnaly on InstallShield Forum. Dec 18, 2018 10:18 AM
- Tagged Install Access database engine x86 or x64 conditionnaly on InstallShield Forum. Dec 18, 2018 10:18 AM
- Tagged Install Access database engine x86 or x64 conditionnaly on InstallShield Forum. Dec 18, 2018 10:18 AM
- Posted Re: How to get WindowsVolume path in installscript function on InstallShield Forum. Oct 09, 2017 10:53 AM
- Posted Re: How to get WindowsVolume path in installscript function on InstallShield Forum. Oct 09, 2017 10:50 AM
- Posted How to get WindowsVolume path in installscript function on InstallShield Forum. Oct 06, 2017 03:30 AM
- Tagged How to get WindowsVolume path in installscript function on InstallShield Forum. Oct 06, 2017 03:30 AM
Contact Me
Online Status |
Offline
|
Date Last Visited |
Sep 27, 2023
06:27 AM
|