I have an ActiveX control which needs to be deployed in client machine and i am planning to do this by supplying installers to the clients .
I have made separate msi packages for 64 and 32 bit operating systems and it works properly.
However , i face a problem when it comes to 64 bit machines since i have the following requirement ,
In case of 32 bit machine install 32 bit ActiveX control.
In case of 64 bit machine install both 32 and 64 bit ActiveX control.
I read many articles stating hybrid installations cannot be done using basic msi installers ?
Can this be done using a single setup.exe file ?
ArunArun50111 gold badge66 silver badges1919 bronze badges
2 Answers
A single MSI cannot both install files or registry to 64-bit locations on a 64-bit system and run on a 32-bit system. So assuming your 64-bit ActiveX control must be installed to or registered in a 64-bit location, you cannot do this in a single MSI.
If you have the premier edition of InstallShield 2012, this is one of the use cases of the Suite (or Suite/Advanced UI) project type. You must create two MSI files, and include them both in the suite with relevant eligibility conditions. (The exact conditions depend on whether you make the MSIs standalone or cumulative, but the 64-bit MSI should only be eligible if the platform has an architecture of x64.)
Michael UrmanMichael Urman14.6k22 gold badges2020 silver badges3636 bronze badges
You can have both 32bit and 64bit components within a single installer and make it to decide what to install depending on the target platform as below.
1) Create two new features(one for 32 and one for 64) and add conditions to both of them.
2) Add both prerequisites and select appropriate (parent) feature for each one
kuma DKkuma DK
Not the answer you're looking for? Browse other questions tagged 32bit-64bitinstallshieldinstallshield-2012 or ask your own question.
Translate this page Powered by Microsoft® Translator |
|
Note regarding InstallScript versions: The samples on this page have been developed with various versions of InstallShield. Some of them require a minimum InstallShield version or may only work in the one version they have been created for. Often it will be possible to make them compatible with other InstallShield versions. |
Change NT Bootup Delay
Windows NT has a bootup countdown that defaults to 30 seconds. With this function youcan set the bootup counter value.
FixBootTimeout.zipWritten byTom LaRoche
File size: 676 bytes Last update: 2000-03-22
File size: 676 bytes Last update: 2000-03-22
Create and Validate User Accounts
Whether you need to verify an existing user account and password, or need to create anew user, this package shows you how to do it. Included is the InstallScript code and therequired support DLL. It was tested on Windows NT 4 with SP5 or above - it will not workon Windows 9x. The sample script is written for IS6, and uses InstallDialogue for somedialogs. Before you can run the sample code, you will have to install InstallDialogue (free download).
CreateOrSelectUser.zipWrittenby Colin Leath
File size: 180.608 bytes Last update: 2001-04-07
File size: 180.608 bytes Last update: 2001-04-07
Create Icon on Quick Launch Bar
This function works similar to AddFolderIcon, but creates the shortcut on the QuickLaunch Bar.
QuickLaunchIcon.zip Written by Torsten Brannolte
File size: 655 bytes Last update: 2000-11-11
File size: 655 bytes Last update: 2000-11-11
Create GUID as String
This is an InstallShield function that calls OLE32.DLL functions to create a new GUIDand returns it in a STRING variable.
CreateStringGUID.zipWrittenby Bruce Wakefield
File size: 1.269 bytes Last update: 09/28/1999
File size: 1.269 bytes Last update: 09/28/1999
Customize Event Log Settings in Windows NT
With this function you can modify the default settings of the event log. It will changethe Maximum Log Size and the Overwrite period of the selected log('Application', Security', or 'System'). This is usually donefrom the Event Viewer menu Log/Log Settings.
CustomizeEventLog.zipWrittenby Tom LaRoche
File size: 1.161 bytes Last update: 2000-01-31
File size: 1.161 bytes Last update: 2000-01-31
DCOM Support
Configure DCOM
See Versatile Setup Extension DLL below.
Detect DCOM Version
This script detects the existence and current version of DCOM on Windows 95.
To install DCOM as silently as possible call dcom95.exe /r:n /q:u
GetDCOMVersion.zip (638 Bytes) Providedby Ken McKinney
See also:InstallShield Object toinstall MDAC and DCOM
Delete .GID When Corresponding .HLP is Updated
The first time you use the Search function in Windows Help, an index (.gid) file forthe help (.hlp) file you are using is generated automatically. If you later update the.hlp file, this index is out of sync. Therefore you should delete the corresponding .gidfile. On the other hand, you should not delete .gid files for help files that are notupdated, because generating the index is a time consuming process. This function detectswhich help files have been updated by your setup, and deletes the corresponding .gidfiles.
This function requires IS6 or above.
DeleteGid.zipWritten by David Osborne
File size: 2.863 bytes Last update: 2000-05-23
File size: 2.863 bytes Last update: 2000-05-23
Detect and Install HTML Help
These functions detect whether HTML Help is installed, retrieve the version number andcan launch the HTML Help setup. The HTML Help installer is not included in this package.See the Windows Updates and Add-Ons page forinformation where to obtain it.
See also:Book about authoring HTML Help
htmlhelp.zipWritten by Chris Dufour
File size: 8.213 bytes Last update: 06/29/1999
File size: 8.213 bytes Last update: 06/29/1999
Detect and Install Internet Explorer
This package includes functions to retrieve information about the installed version ofInternet Explorer and to launch the IE setup program. It works for all 32 bit Windowsversions of IE. The detection part is based on article Q164539 in the Microsoft KnowledgeBase.
(This package supersedes getiever.zip by adding the capability to install IE.)
ie.zipWritten by Chris Dufour and Stefan Krüger
File size: 10.112 bytes Last update: 06/29/1999
File size: 10.112 bytes Last update: 06/29/1999
Detect NT Service Pack
Tftp cisco ios upgrade. This function retrieves the version of the installed Windows NT service pack, andreturns it as string and as numerical value.
NTServicePack.zipWritten by Stefan Krüger
File size: 1.608 bytes Last update: 2000-11-10
File size: 1.608 bytes Last update: 2000-11-10
The above function requires InstallShield5 or above. Following is an older version ofthe function that is compatible with InstallShield3, but does not support Windows 2000:
is3ntservicepack.zipWrittenby David Penner
File size: 744 bytes
File size: 744 bytes
Determining NT 4.0 SP6 versus SP6a
Shortly after SP6 had been released, Microsoft replaced it wth SP6a. Unfortunately theservice pack version number has not been updated, so the GetNTServicePack function can'tbe used to distinguish between SP6 and SP6a. To detect whether Service Pack 6a isinstalled if SP6 is detected, you can check to see if the following registry value is setto 1:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionHotfixQ246009Installed
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionHotfixQ246009Installed
Determine if Active Desktop is Installed
Call this function to find out whether active desktop is installed and whether it isdisplayed as web page. This function is compatible with Windows 95, 98 and NT 4.0 andMicrosoft Internet Explorer 4.x and 5.x. It is based on information from article Q216840in the Microsoft Knowledge Base.
actdesk.zipWritten by Stefan Krüger
File size: 1577 bytes Last update: 04/06/1999
File size: 1577 bytes Last update: 04/06/1999
Distinguish Between NT Server and Workstation
This function tells you whether setup is running on Windows NT Server or Windows NTWorkstation.
IsNTServer.zipWritten by Bill MacEachern
File size: 467 bytes Last update: 03/04/1999
File size: 467 bytes Last update: 03/04/1999
Extended Information in Add/Remove Program Control Panel
In Windows 2000 the Add/Remove control panel applet can display much more informationthan just the program name. For instance, it displays an icon for your program, and canoptionally show your home page URL etc. Most Windows Installer based setups store thisinformation automatically, but it setups created with IS5 or IS6 can do this, too.
Recommended place to call this function:
- IS Pro 5 and earlier: After DeinstallStart and its associated RegDBSetItem function calls
- IS Pro 6: OnMoved event handler
- IS Pro 7: OnMoveData event handler, after the MaintenanceStart function
ARPinfo.zipWritten by Blake Miller
File size: 1.599 bytes Last update: 2001-06-29
File size: 1.599 bytes Last update: 2001-06-29
Find All Shortcuts in a Folder and its Subfolders
This function searches a given Icon folder, e.g. 'Programs', 'n'levels deep and returns all resulting icons.
GetAllIconsFromFolders.zipWrittenby Chris C Robsahm
File size: 1.172 bytes Last update: 2000-02-08
File size: 1.172 bytes Last update: 2000-02-08
Font Installation
Use this function to install true type fonts automatically. Package includes rul file,sample, usage instructions and the required dll (source and compiled for both 16 and 32bit). This script is compatible with IS5 and IS6.
Some of the features:
- Win31 support
- Read internal font names from a file (ie, blind .TTF install)
- Entire directory install (installs all .TTF in a given dir)
- Multilingual (English, French, German)
Note: Article Q100057in the InstallShield Knowledge Base has informations about font installation, too.
Tefonts103.zip Written by Troy Engel
File size: 141.289 bytes Last update: 2000-04-08
File size: 141.289 bytes Last update: 2000-04-08
Get System Information
The functions in this package are not only extensive samples for using the GetSytemInfofunction. They also show how to detect OS/2 Warp version and how to find out whetherWindows is using small or large fonts.
GetSysInfo.zip (4.860 Bytes) Providedby Rainer Feuerstein
See also:How to Identify Windows2000 and Window Me in a Setup Program
Handle Files and Registry Entries in User Profiles
The functions in this package enable your setup to install/uninstall files and registryentries across multiple local profiles on NT/2000/XP target workstations. All this is doneentirely within InstallScript and API calls, and does not use a custom DLL. It wasdeveloped for InstallShield Professional 6.3 and will not work with lower InstallScriptversions.
NTProfiles.zipWritten by Voltaire Toledo
File size: 6.732 bytes Last update: 2002-07-31
File size: 6.732 bytes Last update: 2002-07-31
See also:Load a User Hive Under theHKEY_USERS Key
Handle PATH Environment on NT
Here is a set of functions that will modify the existing path and add a new entry aswell as removing that entry when uninstalling.
It only works on Windows NT/2000 and requires IS6.
Update: now uses SendMessageTimeout instead of SendMessage to avoid hang if some program doesn't process the message.
PathSetup.zipWritten by Geoffrey Faivre-Malloy, updated by Ronny Lipshitz
File size: 1.508 bytes Last update: 2003-06-12
File size: 1.508 bytes Last update: 2003-06-12
Install Printer Driver
This DLL includes functions to install printer drivers on Windows 9x, NT and 2000. Seemyprinter.h for usage information.
You can use this software under the terms of the GNU General Public License.
InstallPrinter.zipWritten by Jan Becker
File size: 31.076 bytes Last update: 2001-08-29
File size: 31.076 bytes Last update: 2001-08-29
Installing an Internet (URL) Shortcut
This function creates an internet shortcut in on the desktop, in a program folder or inthe user's Favorites folder.
To create a link to InstallSite on the start menu, using the default URL icon, youwould call:
createurlshortcut.zipWrittenby Stefan Krueger
File size: 1.552 bytes Last update: 05/04/1999
File size: 1.552 bytes Last update: 05/04/1999
It boasts some of the UK’s most important medieval architecture.Frequency about 2 posts per month.Since Jun 2013WebsiteFacebook fans 1,929. Twitter followers n/a. 37.About Blog Anglican Diocese of Canberra and Goulburn works to maintain effective communication with Diocesan entities and assist the overall strategic development of the Anglican Church.Frequency about 3 posts per week.WebsiteFacebook fans 410. Twitter followers 2,683. North american anglican open communion.
Microsoft Message Queue (MSMQ)Administration
For InstallShield 6
This package uses IS6 COM support to find, delete and create a public queue inMicrosoft Message Queue. To, create the queue, you send the queue name and computer nameto the MSMQCreate function (MSMQCreate will delete a queue with the same name, if itexist, before creating the new queue. The create function will return the newly createdqueue's GUID in the BYREF STRING. To delete or find a queue, you only need to send thequeue name or queue GUID.
MSMQadmin.zipWritten by Bruce Wakefield
File size: 2.113 bytes Last update: 2000-07-31
File size: 2.113 bytes Last update: 2000-07-31
For InstallShield 5
This package calls a VBS file to find, delete and create a public queue in MicrosoftMessage Queue. The MSMQvbs.rul shows examples of how to call the functions in msmq.vbs.This will write entries to the registry, instead of a log file, so that IS can read theoutput from msmq.vbs.
This function requires that Windows Script Host is installed on the target machine.
MSMQadminVBS.zipWritten by Bruce Wakefield
File size: 3.896 bytes Last update: 2000-07-31
File size: 3.896 bytes Last update: 2000-07-31
MTS Administration
This package uses IS6 COM support to create and delete an MTS package and detect MTS onthe current machine. It uses an Mtscom.ini file along with the MTS.rul to create apackage. The InstallPath=, LoginName= and Password= portions are updated by one of thefunctions in the MTS.rul. The rest of the information is entered prior to build. Thisshould work with NT4 and Win2000.
MTSadmin.zipWritten by Bruce Wakefield
File size: 4.118 bytes Last update: 2000-07-31
File size: 4.118 bytes Last update: 2000-07-31
Register Type Library
This multi-purpose setup extension DLL exports three functions:
- GetUNCPath() returns the UNC-Path from a local drive name
- RegTlb() registers a type library
- UnRegTlb unregisters a type library
Included is the C source code, the compiled DLL (for Windows 95 and NT) and a .rul filethat shows how to call the functions.
ishlp.zip (22.697 Bytes) Provided by Peter Moser
Replacement for QueryProgItem
InstallShield's QueryProgItem() function doesn't work for start menu entries with pathscontaining environment variables. There is a DLL available atsupport.installshield.com/resource/IsFuncExt.asp that covers this problem. Unfortunatelythis DLL doesn't provide as many information as QueryProgItem() does. More disadvantageousis, that the returned paths are in the 8.3-format. This DLL is a replacement forQueryProgItem(). It returns as many information as QueryProgItem() does and it works forpaths containing environment variables.
QueryShortcut.zipWritten byMartin Golm
File size: 28.970 bytes Last update: 2000-05-06
File size: 28.970 bytes Last update: 2000-05-06
Retrieving Name of StartUp Folder On All Platforms
The system variable FOLDER_STARTUP is only valid in 32 bit installs. If your setup runson a localized version of Windows 3.1x it is a bit more complex to get the name of thestartup folder. This function works on 16 bit and 32 bit Windows in all languages.
getstartup.zip (634 Bytes) Providedby Stefan Krueger
Setting Access Permissions
The following samples can be used to set user permissions on files, directories and registry keys.
Installshield Check Operating System Requirements
Note: In InstallShield 2010 a new SetObjectPermissions function was introduced for this purpose, so you might not need the samples below. However, SetObjectPermissions doesn't work on 64-bit registry and file locations (workorder# IOA-000056378). Thanks to Kevin Mackey for this information
Set Permissions on Files, Registry Keys and Printers
This function sets permissions not only on files but also on registry keys and printers. It doesn't use the cacls tool but instead calls Windows Security API functions directly. It uses Universal SIDs and therefore works language independent. If the target object doesn't have an ACL (e.g. a FAT32 file system) the functions returns an error code.
The script was tested with InstallSield Professional 6 and Developer 8.
The script was tested with InstallSield Professional 6 and Developer 8.
ntperm.zipWritten byKlaus Ewinger
File size: 2.903 bytes Last update: 2003-07-17
File size: 2.903 bytes Last update: 2003-07-17
Set NTFS File and Directory Permissions
This sample shows how to call the cacls tools in Windows NT 4 and 2000 to set accessrights for directories on NTFS. You don't need to test to find out if the partition isNTFS or FAT - the command executes without doing anything on a FAT partition (since thereare no NTFS permissions) - no error is returned (it hasn't been tested on a FAT32partition). Of course you need to have Administrator rights.
Note: Some special user names are localized on different languageversions of Windows, e.g. instead of 'Everyone' you have to use'Jeder' in a German version of Windows, else this function will fail.
Note: Some special user names are localized on different languageversions of Windows, e.g. instead of 'Everyone' you have to use'Jeder' in a German version of Windows, else this function will fail.
ntfs_perm.zipWritten by Jeff Meyer
File size: 1.181 bytes Last update: 2000-05-02
File size: 1.181 bytes Last update: 2000-05-02
Set User Rights on NT
This DLL allows you to grant or revoke a specified right under NT for the specifieduser.
NTrights.zip (45.883 Bytes) Providedby Artur Valitov
Setting Locale Info
Need to change regional setting like currency symbol, date or number format? Here isthe function you need. It works for both, Windows95 and Windows NT.
setlocaleinfo.zip (2.813 Bytes) Providedby Kurt Petteloot
Versatile Setup Extension DLL
Tokyo ghoul saison 3. This DLL provides so many functions that it can't be filed under one specific topic.Here is an overview of the features:
- adds/removes user on the local system
- enumerates locally defined administrator accounts
- sets the logon/run as information for a service
- adds the 'Logon as a Service', and 'Batch Logon' privileges to the account's policy
- grants and verifies the TCB privilege to administrators
- launches an application minimized, then waits for completion before returning
- stops and removes a service
- changes Access and Launch security information for specified COM/DCOM objects
- sets the password from the runas information for specified AppID
- flushes a registry key
- registers/unregisters COM files, regardless of extension (EXE, DLL, OCX)
- retrieves the local machine name, domain and PDC names and a list of trusted domains
Included is the DLL source code, compiled DLL and InstallShield header file and samplecode.
Some of the dialogs included in this package have been created with InstallDialogue. If you want to use them, you have to download the InstallDialogue Free Edition from Moonsea Software |
Notes:
- This sample can't be directly inserted in your setup. Insteadyou will have to copy the relevant functionality to your project.
- If you are using InstallShield Professional 7 or above you may need to add the cdecl calling convention to some of the DLL function prototypes, e.g.:
prototype cdecl isinst.SetServiceRunAs( STRING, STRING, STRING );
instvc.zipWritten by Mike Brown
File size: 123.868 bytes Last update: 08/17/1999
File size: 123.868 bytes Last update: 08/17/1999
News | Discussions | Windows Installer | Related Tools | More Help | InstallScript | About InstallSite | Shop | Site Search |
Neuigkeiten | Diskussionsgruppen | Windows Installer | MSI FAQ | Artikel | Shop | Suche |
Copyright © by InstallSite Stefan Krueger. All rights reserved. Legal information.
Impressum/ImprintDatenschutzerklärung/Privacy Policy
By using this site you agree to the license agreement. Webmaster contact
When distributing a mixed 32/64-bit package, the application installed by the package may use a 32-bit or 64-bit version of the same registry key. In this How-To, the package must create a 32-bit version or a 64-bit version of the HKEY_LOCAL_MACHINESoftwareMyKey registry key.
The tree control in the Registry page does not support duplicate entries, but the 'Registry' table inside the MSI supports them. Therefore, a solution is to create a key which uses a property in its name. Here are the steps for the HKEY_LOCAL_MACHINESoftwareMyKey registry key (you can adapt the example to your custom registry keys):
- Go to the 'Registry' page and create the HKEY_LOCAL_MACHINESoftwareMyKey registry key
- Add your 32-bit registry values in it
- Go to the Organization page and select the feature which contains the registry values
- Press SHIFT+F4 on your keyboard to see the contents of the feature
- Select the components of the 32-bit registry values, right-click one of them and select the 'Properties' menu
- In the 'Edit Component Properties' dialog set the Condition field to NOT VersionNT64
- Go to the Install Parameters page and create a custom property (for example MY_REG_KEY)
- Set its value to the name of your custom registry key (MyKey)
- Go to the 'Registry' page and select the parent key of your custom registry key (HKEY_LOCAL_MACHINESoftware)
- Create under it a new registry key
- Rename it to the custom property you created ([MY_REG_KEY])
- Now you should have these keys: HKEY_LOCAL_MACHINESoftwareMyKey and HKEY_LOCAL_MACHINESoftware[MY_REG_KEY]
- Add the 64-bit registry values in the [MY_REG_KEY] key
- Go to the 'Organization' page and select the feature which contains them
- Press SHIFT+F4 on your keyboard and select the components of the 64-bit registry values
- Right-click one of them and select the 'Properties' menu
- In the 'Edit Component Properties' dialog set the Condition field to VersionNT64
- Tick the option 64-bit Component
If the 32-bit values are in the same feature as the 64-bit values, the components of the values with the same name will be different. For example, if you add the 'MyValue' registry value in one key and then add it in another key, the components will be named:
- MyValue for the first key
- MyValue_1 for the second key
If you use this approach, the package will determine the type of the target system (32/64-bit) by using the 'VersionNT64' property. Also, it will install only the components which correspond to the system type.