ymtjia
Posts: 8
Joined: Thu Nov 01, 2007 1:12 am

Service Control Operation using Property fails

Hi,

I am encountering an error using the Enterprise project. The problem I am facing is that, I cannot uninstall a service. Below is the steps to reproduce my problem:

1. Create an enterprise project
2. Add a new dialog after FolderDlg. Add an edit box, and assign it a property name (I called mine SVCNAME)
3. Add a New Service Installation. In the Service Name, Display Name and Description, I keyed in [SVCNAME]
4. Add a New Control Operation. In the Service Name, I keyed in [SVCNAME]
5. Set the control to Start the service during install, and delete the service during Uninstall.

Now, when I run the installer, the service gets installed and started. However, when I try to uninstall, I get the following error message:
"Product: Your Application -- Error 1922. Service '' () could not be deleted. Verify that you have sufficient privileges to remove system services."

I am not sure what I have missed out.

Since I need a quick response to this, I have listed the content of my testing aip file.

Thank you.
Rgds

Code: Select all

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<DOCUMENT type="Advanced Installer" CreateVersion="5.2.2" version="5.2.2" modules="enterprise" RootPath="." Language="en">
  <COMPONENT cid="caphyon.advinst.msicomp.MsiPropsComponent">
    <ROW Property="ALLUSERS" Value="2"/>
    <ROW Property="ARPCOMMENTS" Value="This installer database contains the logic and data required to install [|ProductName]." ValueLocId="*"/>
    <ROW Property="BannerBitmap" Value="default_banner.bmp" Type="1"/>
    <ROW Property="DialogBitmap" Value="default_dialog.bmp" Type="1"/>
    <ROW Property="Manufacturer" Value="Your Company" ValueLocId="*"/>
    <ROW Property="ProductCode" Value="1033:{643DC850-20BE-4C25-AD26-1F4F30B8753F} "/>
    <ROW Property="ProductLanguage" Value="1033"/>
    <ROW Property="ProductName" Value="Your Application" ValueLocId="*"/>
    <ROW Property="ProductVersion" Value="1.0.0"/>
    <ROW Property="SecureCustomProperties" Value="OLDPRODUCTS;AI_NEWERPRODUCTFOUND"/>
    <ROW Property="UpgradeCode" Value="{E38F7FE8-F058-4571-BE14-8FB96287D721}"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiDirsComponent">
    <ROW Directory="APPDIR" Directory_Parent="TARGETDIR" DefaultDir="APPDIR:." IsPseudoRoot="1"/>
    <ROW Directory="TARGETDIR" DefaultDir="SourceDir"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiCompsComponent">
    <ROW Component="XYNTService.exe" ComponentId="{F3EF6252-947F-40BC-B410-CFE1767C80C5}" Directory_="APPDIR" Attributes="0" KeyPath="XYNTService.exe" FullKeyPath="APPDIR\XYNTService.exe"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiFeatsComponent">
    <ROW Feature="MainFeature" Title="MainFeature" Description="Description" Display="1" Level="1" Directory_="APPDIR" Attributes="0" Components="XYNTService.exe"/>
    <ATTRIBUTE name="CurrentFeature" value="MainFeature"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiFilesComponent">
    <ROW File="XYNTService.exe" Component_="XYNTService.exe" FileName="XYNTSe~1.exe|XYNTService.exe" Attributes="0" SourcePath="JbossService\XYNTService.exe" SelfReg="false" Sequence="1"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.BuildComponent">
    <ROW BuildName="DefaultBuild" BuildOrder="1" BuildType="1" InstallationType="4"/>
    <ATTRIBUTE name="CurrentBuild" value="DefaultBuild"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.DictionaryComponent">
    <ROW Path="<ui.ail>"/>
    <ROW Path="<ui_en.ail>"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.FragmentComponent">
    <ROW Fragment="FolderDlg.aip" Path="<FolderDlg.aip>"/>
    <ROW Fragment="StaticUIStrings.aip" Path="<StaticUIStrings.aip>"/>
    <ROW Fragment="UI.aip" Path="<UI.aip>"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiBinaryComponent">
    <ROW Name="aicustact.dll" SourcePath="<aicustact.dll>"/>
    <ROW Name="default_banner.bmp" SourcePath="<default-banner.bmp>"/>
    <ROW Name="default_dialog.bmp" SourcePath="<default-dialog.bmp>"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiControlComponent">
    <ROW Dialog_="NewDialog" Control="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Attributes="3" Text="[ButtonText_Back]" Control_Next="BannerBitmap" TextLocId="-"/>
    <ROW Dialog_="NewDialog" Control="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" Attributes="1048577" Text="[BannerBitmap]" Control_Next="BannerLine"/>
    <ROW Dialog_="NewDialog" Control="BannerLine" Type="Line" X="0" Y="44" Width="372" Height="0" Attributes="1" Control_Next="BottomLine"/>
    <ROW Dialog_="NewDialog" Control="BottomLine" Type="Line" X="5" Y="234" Width="368" Height="0" Attributes="1" Control_Next="Description"/>
    <ROW Dialog_="NewDialog" Control="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Attributes="3" Text="[ButtonText_Cancel]" Control_Next="Back" TextLocId="-"/>
    <ROW Dialog_="NewDialog" Control="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Attributes="196611" Text="New Dialog Description..." Control_Next="Logo" TextLocId="Control.Text.TemplateDlg#Description"/>
    <ROW Dialog_="NewDialog" Control="Logo" Type="Text" X="4" Y="228" Width="70" Height="12" Attributes="1" Text="Advanced Installer" Control_Next="Title" TextLocId="Control.Text.TemplateDlg#Logo"/>
    <ROW Dialog_="NewDialog" Control="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Attributes="3" Text="[ButtonText_Next]" Control_Next="Cancel" TextLocId="-"/>
    <ROW Dialog_="NewDialog" Control="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Attributes="196611" Text="New Dialog" TextStyle="[DlgTitleFont]" Control_Next="NewDialogEdit_323" TextLocId="Control.Text.TemplateDlg#Title"/>
    <ROW Dialog_="NewDialog" Control="NewDialogEdit_323" Type="Edit" X="84" Y="80" Width="68" Height="18" Attributes="3" Property="SVCNAME" Text="{260}" Control_Next="Next"/>
    <ATTRIBUTE name="FixedSizeBitmaps" value="2"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiControlEventComponent">
    <ROW Dialog_="FolderDlg" Control_="Back" Event="NewDialog" Argument="WelcomeDlg" Condition="AI_INSTALL" Ordering="1"/>
    <ROW Dialog_="WelcomeDlg" Control_="Next" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL" Ordering="1"/>
    <ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="NewDialog" Condition="AI_INSTALL" Ordering="1"/>
    <ROW Dialog_="FolderDlg" Control_="Next" Event="NewDialog" Argument="NewDialog" Condition="AI_INSTALL" Ordering="3"/>
    <ROW Dialog_="MaintenanceTypeDlg" Control_="Back" Event="NewDialog" Argument="MaintenanceWelcomeDlg" Condition="AI_MAINT" Ordering="1"/>
    <ROW Dialog_="MaintenanceWelcomeDlg" Control_="Next" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT" Ordering="2"/>
    <ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="PatchWelcomeDlg" Condition="AI_PATCH" Ordering="1"/>
    <ROW Dialog_="PatchWelcomeDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_PATCH" Ordering="3"/>
    <ROW Dialog_="NewDialog" Control_="Cancel" Event="SpawnDialog" Argument="CancelDlg" Condition="1" Ordering="1"/>
    <ROW Dialog_="NewDialog" Control_="Back" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL" Ordering="1"/>
    <ROW Dialog_="NewDialog" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_INSTALL" Ordering="1"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiCustActComponent">
    <ROW Action="AI_DOWNGRADE" Type="19" Target="4010"/>
    <ROW Action="AI_PREPARE_UPGRADE" Type="1" Source="aicustact.dll" Target="PrepareUpgrade"/>
    <ROW Action="AI_RESTORE_LOCATION" Type="1" Source="aicustact.dll" Target="RestoreLocation"/>
    <ROW Action="AI_STORE_LOCATION" Type="51" Source="ARPINSTALLLOCATION" Target="[APPDIR]"/>
    <ROW Action="SET_APPDIR" Type="307" Source="APPDIR" Target="[ProgramFilesFolder][Manufacturer]\[ProductName]"/>
    <ROW Action="SET_SHORTCUTDIR" Type="307" Source="SHORTCUTDIR" Target="[ProgramMenuFolder][ProductName]"/>
    <ROW Action="SET_TARGETDIR_TO_APPDIR" Type="51" Source="TARGETDIR" Target="[APPDIR]"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiDialogComponent">
    <ROW Dialog="NewDialog" HCentering="50" VCentering="50" Width="370" Height="270" Attributes="3" Title="[ProductName] [Setup]" Control_First="Next" Control_Default="Next" Control_Cancel="Cancel"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiInstExSeqComponent">
    <ROW Action="AI_DOWNGRADE" Condition="AI_NEWERPRODUCTFOUND AND (UILevel <> 5)" Sequence="210"/>
    <ROW Action="AI_RESTORE_LOCATION" Condition="APPDIR=""" Sequence="740"/>
    <ROW Action="AI_STORE_LOCATION" Condition="Not Installed" Sequence="1545"/>
    <ROW Action="AI_PREPARE_UPGRADE" Condition="AI_UPGRADE="No" AND (Not Installed)" Sequence="1300"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiInstallUISequenceComponent">
    <ROW Action="AI_RESTORE_LOCATION" Condition="APPDIR=""" Sequence="740"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiServCtrlComponent">
    <ROW ServiceControl="ServiceName" Name="[SVCNAME]" Event="129" Wait="1" Component_="XYNTService.exe"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiServInstComponent">
    <ROW ServiceInstall="XYNTService.exe" Name="[SVCNAME]" DisplayName="[SVCNAME]e" ServiceType="16" StartType="2" ErrorControl="1" Component_="XYNTService.exe" Description="[SVCNAME]"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiUpgradeComponent">
    <ROW UpgradeCode="[|UpgradeCode]" VersionMax="[|ProductVersion]" Attributes="1025" ActionProperty="OLDPRODUCTS"/>
    <ROW UpgradeCode="[|UpgradeCode]" VersionMin="[|ProductVersion]" Attributes="2" ActionProperty="AI_NEWERPRODUCTFOUND"/>
  </COMPONENT>
</DOCUMENT>
Cosmin
Posts: 5797
Joined: Tue Jul 10, 2007 6:39 pm
Contact: Website

Hi,

This happens because the property you are using for the service name (SVCNAME) is empty during the uninstall process (during the installation it is set by the user, but during the uninstall it is not set).

The solution is to store the value of the property into the registry and for the uninstall process you will use a search to find the value and a custom action to set the SVCNAME property.

In order to store the value of a property into the registry you can create a registry value in the "Registry" page and in the "Data" field you use the property (for example: [SVCNAME]).

Note that in order to set the value of the property you can use a "Property set with formatted" custom action that will be scheduled under the "AppSearch" standard action.

You can read more about the search page here:
http://www.advancedinstaller.com/user-guide/search.html
If you need more information about custom actions please see this page:
http://www.advancedinstaller.com/user-g ... -page.html

Regards,
Cosmin
Cosmin Pirvu - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube
ymtjia
Posts: 8
Joined: Thu Nov 01, 2007 1:12 am

Hi,

Thank you for the prompt response; I will try this out.

I have another question about custom action.

Where should I place my custom action (.vbs) script such that it will be executed just before the windows service is started? I need to do this because the window service will read some output produced by the custom action.

At the same time, the custom action (.vbs) will also modify some of the installed files as well as read some Session property.

I am currently placing the custom action in InstallFinalize; but, its a little late because by then, the Window Service has been started.

Thank you.
Rgds
Cosmin
Posts: 5797
Joined: Tue Jul 10, 2007 6:39 pm
Contact: Website

Hi,

In order to execute a custom action before the services are started you can schedule it under the "InstallServices" standard action (under "InstallExecuteSequence").

Regards,
Cosmin
Cosmin Pirvu - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube
ymtjia
Posts: 8
Joined: Thu Nov 01, 2007 1:12 am

Hi Cosmin,

I have tried to use the method you have mentioned (regarding doing a registry search), however, I am still getting the same error. In my custom action, I have set the property SVCNAME, and to verify that it's correct, I have retrieved it again and do a message box.

I have attached both the aip project and .vbs script.

Thanks
Rgds,


AIP file:

Code: Select all

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<DOCUMENT type="Advanced Installer" CreateVersion="5.2.2" version="5.2.2" modules="enterprise" RootPath="." Language="en">
  <COMPONENT cid="caphyon.advinst.msicomp.MsiPropsComponent">
    <ROW Property="ALLUSERS" Value="2"/>
    <ROW Property="ARPCOMMENTS" Value="This installer database contains the logic and data required to install [|ProductName]." ValueLocId="*"/>
    <ROW Property="BannerBitmap" Value="default_banner.bmp" Type="1"/>
    <ROW Property="DialogBitmap" Value="default_dialog.bmp" Type="1"/>
    <ROW Property="Manufacturer" Value="Tym Pte Ltd" ValueLocId="*"/>
    <ROW Property="ProductCode" Value="1033:{643DC850-20BE-4C25-AD26-1F4F30B8753F} "/>
    <ROW Property="ProductLanguage" Value="1033"/>
    <ROW Property="ProductName" Value="My IDM Svr" ValueLocId="*"/>
    <ROW Property="ProductVersion" Value="1.0.0"/>
    <ROW Property="SecureCustomProperties" Value="OLDPRODUCTS;AI_NEWERPRODUCTFOUND"/>
    <ROW Property="UpgradeCode" Value="{E38F7FE8-F058-4571-BE14-8FB96287D721}"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiDirsComponent">
    <ROW Directory="APPDIR" Directory_Parent="TARGETDIR" DefaultDir="APPDIR:." IsPseudoRoot="1"/>
    <ROW Directory="TARGETDIR" DefaultDir="SourceDir"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiCompsComponent">
    <ROW Component="InstallDate" ComponentId="{97F73B12-1041-4754-8947-8BCD81F5D52E}" Directory_="APPDIR" Attributes="4" KeyPath="InstallDate" FullKeyPath="HK_LM\Software\[Manufacturer]\[ProductName]\InstallDateTime"/>
    <ROW Component="InstallUserName" ComponentId="{02B657C9-F22E-46BB-B6B6-495F347B84E7}" Directory_="APPDIR" Attributes="4" KeyPath="InstallUserName" FullKeyPath="HK_LM\Software\[Manufacturer]\[ProductName]\InstallUserName"/>
    <ROW Component="New_Value" ComponentId="{20D3CE35-2F96-4CD4-B87C-EC923D0093BD}" Directory_="APPDIR" Attributes="4" KeyPath="New_Value" FullKeyPath="HK_LM\Software\[Manufacturer]\[ProductName]\New Value"/>
    <ROW Component="ServiceName" ComponentId="{30B47ADF-BBA4-4FD6-BCE3-766CF88F90C8}" Directory_="APPDIR" Attributes="4" KeyPath="ServiceName" FullKeyPath="HK_LM\Software\[Manufacturer]\[ProductName]\ServiceName"/>
    <ROW Component="StartJbossService.bat" ComponentId="{F8DB5EE4-194C-44C9-A3A6-1F9885EB15BF}" Directory_="APPDIR" Attributes="0" KeyPath="StartJbossService.bat" FullKeyPath="APPDIR"/>
    <ROW Component="Version" ComponentId="{8F6A5A20-E127-4664-9B85-A7F1CEEF1DE2}" Directory_="APPDIR" Attributes="4" KeyPath="Version" FullKeyPath="HK_LM\Software\[Manufacturer]\[ProductName]\Version"/>
    <ROW Component="XYNTService.exe" ComponentId="{FB30B451-A036-44A0-B03D-7A1D6BF507D9}" Directory_="APPDIR" Attributes="0" KeyPath="XYNTService.exe" FullKeyPath="APPDIR\XYNTService.exe"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiFeatsComponent">
    <ROW Feature="MainFeature" Title="MainFeature" Description="Description" Display="1" Level="1" Directory_="APPDIR" Attributes="0" Components="Version ServiceName InstallDate StartJbossService.bat InstallUserName New_Value XYNTService.exe"/>
    <ATTRIBUTE name="CurrentFeature" value="MainFeature"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiFilesComponent">
    <ROW File="StartJbossService.bat" Component_="StartJbossService.bat" FileName="StartJ~1.bat|StartJbossService.bat" Attributes="0" SourcePath="JbossService\StartJbossService.bat" SelfReg="false" Sequence="1"/>
    <ROW File="XYNTService.exe" Component_="XYNTService.exe" FileName="XYNTSe~1.exe|XYNTService.exe" Attributes="0" SourcePath="JbossService\XYNTService.exe" SelfReg="false" Sequence="2"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.BuildComponent">
    <ROW BuildName="DefaultBuild" BuildOrder="1" BuildType="1" InstallationType="4"/>
    <ATTRIBUTE name="CurrentBuild" value="DefaultBuild"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.DictionaryComponent">
    <ROW Path="<ui.ail>"/>
    <ROW Path="<ui_en.ail>"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.FragmentComponent">
    <ROW Fragment="FolderDlg.aip" Path="<FolderDlg.aip>"/>
    <ROW Fragment="StaticUIStrings.aip" Path="<StaticUIStrings.aip>"/>
    <ROW Fragment="UI.aip" Path="<UI.aip>"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiAppSearchComponent">
    <ROW Property="INSTALLEDSVC" Signature_="AppSearchSign"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiBinaryComponent">
    <ROW Name="GetSvc.vbs" SourcePath="scripts\GetSvc.vbs"/>
    <ROW Name="aicustact.dll" SourcePath="<aicustact.dll>"/>
    <ROW Name="default_banner.bmp" SourcePath="<default-banner.bmp>"/>
    <ROW Name="default_dialog.bmp" SourcePath="<default-dialog.bmp>"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiControlComponent">
    <ROW Dialog_="NewDialog" Control="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Attributes="3" Text="[ButtonText_Back]" Control_Next="BannerBitmap" TextLocId="-"/>
    <ROW Dialog_="NewDialog" Control="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" Attributes="1048577" Text="[BannerBitmap]" Control_Next="BannerLine"/>
    <ROW Dialog_="NewDialog" Control="BannerLine" Type="Line" X="0" Y="44" Width="372" Height="0" Attributes="1" Control_Next="BottomLine"/>
    <ROW Dialog_="NewDialog" Control="BottomLine" Type="Line" X="5" Y="234" Width="368" Height="0" Attributes="1" Control_Next="Description"/>
    <ROW Dialog_="NewDialog" Control="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Attributes="3" Text="[ButtonText_Cancel]" Control_Next="Back" TextLocId="-"/>
    <ROW Dialog_="NewDialog" Control="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Attributes="196611" Text="New Dialog Description..." Control_Next="Logo" TextLocId="Control.Text.TemplateDlg#Description"/>
    <ROW Dialog_="NewDialog" Control="Logo" Type="Text" X="4" Y="228" Width="70" Height="12" Attributes="1" Text="Advanced Installer" Control_Next="Title" TextLocId="Control.Text.TemplateDlg#Logo"/>
    <ROW Dialog_="NewDialog" Control="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Attributes="3" Text="[ButtonText_Next]" Control_Next="Cancel" TextLocId="-"/>
    <ROW Dialog_="NewDialog" Control="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Attributes="196611" Text="New Dialog" TextStyle="[DlgTitleFont]" Control_Next="NewDialogEdit_323" TextLocId="Control.Text.TemplateDlg#Title"/>
    <ROW Dialog_="NewDialog" Control="NewDialogEdit_323" Type="Edit" X="84" Y="80" Width="68" Height="18" Attributes="3" Property="SVCNAME" Text="{260}" Control_Next="Next"/>
    <ATTRIBUTE name="FixedSizeBitmaps" value="2"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiControlEventComponent">
    <ROW Dialog_="FolderDlg" Control_="Back" Event="NewDialog" Argument="WelcomeDlg" Condition="AI_INSTALL" Ordering="1"/>
    <ROW Dialog_="WelcomeDlg" Control_="Next" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL" Ordering="1"/>
    <ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="NewDialog" Condition="AI_INSTALL" Ordering="1"/>
    <ROW Dialog_="FolderDlg" Control_="Next" Event="NewDialog" Argument="NewDialog" Condition="AI_INSTALL" Ordering="3"/>
    <ROW Dialog_="MaintenanceTypeDlg" Control_="Back" Event="NewDialog" Argument="MaintenanceWelcomeDlg" Condition="AI_MAINT" Ordering="1"/>
    <ROW Dialog_="MaintenanceWelcomeDlg" Control_="Next" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT" Ordering="2"/>
    <ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="PatchWelcomeDlg" Condition="AI_PATCH" Ordering="1"/>
    <ROW Dialog_="PatchWelcomeDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_PATCH" Ordering="3"/>
    <ROW Dialog_="NewDialog" Control_="Cancel" Event="SpawnDialog" Argument="CancelDlg" Condition="1" Ordering="1"/>
    <ROW Dialog_="NewDialog" Control_="Back" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL" Ordering="1"/>
    <ROW Dialog_="NewDialog" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_INSTALL" Ordering="1"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiCustActComponent">
    <ROW Action="AI_DOWNGRADE" Type="19" Target="4010"/>
    <ROW Action="AI_PREPARE_UPGRADE" Type="1" Source="aicustact.dll" Target="PrepareUpgrade"/>
    <ROW Action="AI_RESTORE_LOCATION" Type="1" Source="aicustact.dll" Target="RestoreLocation"/>
    <ROW Action="AI_STORE_LOCATION" Type="51" Source="ARPINSTALLLOCATION" Target="[APPDIR]"/>
    <ROW Action="GetSvc.vbs" Type="70" Source="GetSvc.vbs" Target="GetSvcName()"/>
    <ROW Action="SET_APPDIR" Type="307" Source="APPDIR" Target="[ProgramFilesFolder][Manufacturer]\[ProductName]"/>
    <ROW Action="SET_SHORTCUTDIR" Type="307" Source="SHORTCUTDIR" Target="[ProgramMenuFolder][ProductName]"/>
    <ROW Action="SET_TARGETDIR_TO_APPDIR" Type="51" Source="TARGETDIR" Target="[APPDIR]"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiDialogComponent">
    <ROW Dialog="NewDialog" HCentering="50" VCentering="50" Width="370" Height="270" Attributes="3" Title="[ProductName] [Setup]" Control_First="Next" Control_Default="Next" Control_Cancel="Cancel"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiInstExSeqComponent">
    <ROW Action="AI_DOWNGRADE" Condition="AI_NEWERPRODUCTFOUND AND (UILevel <> 5)" Sequence="210"/>
    <ROW Action="AI_RESTORE_LOCATION" Condition="APPDIR=""" Sequence="740"/>
    <ROW Action="AI_STORE_LOCATION" Condition="Not Installed" Sequence="1545"/>
    <ROW Action="AI_PREPARE_UPGRADE" Condition="AI_UPGRADE="No" AND (Not Installed)" Sequence="1300"/>
    <ROW Action="GetSvc.vbs" Condition="(REMOVE="ALL")" Sequence="1901"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiInstallUISequenceComponent">
    <ROW Action="AI_RESTORE_LOCATION" Condition="APPDIR=""" Sequence="740"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiRegLocatorComponent">
    <ROW Signature_="AppSearchSign" Root="2" Key="Software\[Manufacturer]\[ProductName]" Name="ServiceName" Type="2"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiRegsComponent">
    <ROW Registry="InstallDate" Root="2" Key="Software\[Manufacturer]\[ProductName]" Name="InstallDateTime" Value="[Date] [Time]" Component_="InstallDate"/>
    <ROW Registry="InstallUserName" Root="2" Key="Software\[Manufacturer]\[ProductName]" Name="InstallUserName" Value="[USERNAME]" Component_="InstallUserName"/>
    <ROW Registry="New_Value" Root="2" Key="Software\[Manufacturer]\[ProductName]" Name="New Value" Component_="New_Value"/>
    <ROW Registry="ServiceName" Root="2" Key="Software\[Manufacturer]\[ProductName]" Name="ServiceName" Value="[SVCNAME]" Component_="ServiceName"/>
    <ROW Registry="Version" Root="2" Key="Software\[Manufacturer]\[ProductName]" Name="Version" Value="[ProductVersion]" Component_="Version"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiServCtrlComponent">
    <ROW ServiceControl="ServiceName" Name="[SVCNAME]" Event="161" Wait="1" Component_="XYNTService.exe"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiServInstComponent">
    <ROW ServiceInstall="XYNTService.exe" Name="[SVCNAME]" DisplayName="[SVCNAME]" ServiceType="16" StartType="2" ErrorControl="1" Component_="XYNTService.exe" Description="[SVCNAME]"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiUpgradeComponent">
    <ROW UpgradeCode="[|UpgradeCode]" VersionMax="[|ProductVersion]" Attributes="1025" ActionProperty="OLDPRODUCTS"/>
    <ROW UpgradeCode="[|UpgradeCode]" VersionMin="[|ProductVersion]" Attributes="2" ActionProperty="AI_NEWERPRODUCTFOUND"/>
  </COMPONENT>
</DOCUMENT>

.vbs file:

Code: Select all

Option Explicit
GetSvcName()

function GetSvcName()

	Dim k, j

	k = Session.Property("INSTALLEDSVC")
'	MsgBox "k : " & k

	Session.Property("SVCNAME") = k

	j = Session.Property("SVCNAME")
	Msgbox "SvcName : " & j

	GetSvcName = 0
End Function

Cosmin
Posts: 5797
Joined: Tue Jul 10, 2007 6:39 pm
Contact: Website

Hi,

This happens because you have scheduled your custom action under the "StopServices" standard action instead of scheduling it under "AppSearch".

Please note that if you schedule a custom action under the "StopServices" standard action then the custom action will be executed after the services are stopped (the standard action is executed).

Also, you should use a "Property set with formatted" custom action instead of VBScript, like I recommended in one of my previous posts.

Regards,
Cosmin
Cosmin Pirvu - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube
ymtjia
Posts: 8
Joined: Thu Nov 01, 2007 1:12 am

Hi,

I have tried to schedule it under "AppSearch" and using "Property set with formatted", however, I still get the same error. Is there something else that I still missed out? Here is the aip file.

Thanks
Rgds,

Code: Select all

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<DOCUMENT type="Advanced Installer" CreateVersion="5.2.2" version="5.2.2" modules="enterprise" RootPath="." Language="en">
  <COMPONENT cid="caphyon.advinst.msicomp.MsiPropsComponent">
    <ROW Property="ALLUSERS" Value="2"/>
    <ROW Property="ARPCOMMENTS" Value="This installer database contains the logic and data required to install [|ProductName]." ValueLocId="*"/>
    <ROW Property="BannerBitmap" Value="default_banner.bmp" Type="1"/>
    <ROW Property="DialogBitmap" Value="default_dialog.bmp" Type="1"/>
    <ROW Property="Manufacturer" Value="Tym Pte Ltd" ValueLocId="*"/>
    <ROW Property="ProductCode" Value="1033:{643DC850-20BE-4C25-AD26-1F4F30B8753F} "/>
    <ROW Property="ProductLanguage" Value="1033"/>
    <ROW Property="ProductName" Value="My IDM Svr" ValueLocId="*"/>
    <ROW Property="ProductVersion" Value="1.0.0"/>
    <ROW Property="SecureCustomProperties" Value="OLDPRODUCTS;AI_NEWERPRODUCTFOUND"/>
    <ROW Property="UpgradeCode" Value="{E38F7FE8-F058-4571-BE14-8FB96287D721}"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiDirsComponent">
    <ROW Directory="APPDIR" Directory_Parent="TARGETDIR" DefaultDir="APPDIR:." IsPseudoRoot="1"/>
    <ROW Directory="TARGETDIR" DefaultDir="SourceDir"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiCompsComponent">
    <ROW Component="InstallDate" ComponentId="{97F73B12-1041-4754-8947-8BCD81F5D52E}" Directory_="APPDIR" Attributes="4" KeyPath="InstallDate" FullKeyPath="HK_LM\Software\[Manufacturer]\[ProductName]\InstallDateTime"/>
    <ROW Component="InstallUserName" ComponentId="{02B657C9-F22E-46BB-B6B6-495F347B84E7}" Directory_="APPDIR" Attributes="4" KeyPath="InstallUserName" FullKeyPath="HK_LM\Software\[Manufacturer]\[ProductName]\InstallUserName"/>
    <ROW Component="New_Value" ComponentId="{20D3CE35-2F96-4CD4-B87C-EC923D0093BD}" Directory_="APPDIR" Attributes="4" KeyPath="New_Value" FullKeyPath="HK_LM\Software\[Manufacturer]\[ProductName]\New Value"/>
    <ROW Component="ServiceName" ComponentId="{30B47ADF-BBA4-4FD6-BCE3-766CF88F90C8}" Directory_="APPDIR" Attributes="4" KeyPath="ServiceName" FullKeyPath="HK_LM\Software\[Manufacturer]\[ProductName]\ServiceName"/>
    <ROW Component="StartJbossService.bat" ComponentId="{F8DB5EE4-194C-44C9-A3A6-1F9885EB15BF}" Directory_="APPDIR" Attributes="0" KeyPath="StartJbossService.bat" FullKeyPath="APPDIR"/>
    <ROW Component="Version" ComponentId="{8F6A5A20-E127-4664-9B85-A7F1CEEF1DE2}" Directory_="APPDIR" Attributes="4" KeyPath="Version" FullKeyPath="HK_LM\Software\[Manufacturer]\[ProductName]\Version"/>
    <ROW Component="XYNTService.exe" ComponentId="{FB30B451-A036-44A0-B03D-7A1D6BF507D9}" Directory_="APPDIR" Attributes="0" KeyPath="XYNTService.exe" FullKeyPath="APPDIR\XYNTService.exe"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiFeatsComponent">
    <ROW Feature="MainFeature" Title="MainFeature" Description="Description" Display="1" Level="1" Directory_="APPDIR" Attributes="0" Components="Version ServiceName InstallDate StartJbossService.bat InstallUserName New_Value XYNTService.exe"/>
    <ATTRIBUTE name="CurrentFeature" value="MainFeature"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiFilesComponent">
    <ROW File="StartJbossService.bat" Component_="StartJbossService.bat" FileName="StartJ~1.bat|StartJbossService.bat" Attributes="0" SourcePath="JbossService\StartJbossService.bat" SelfReg="false" Sequence="1"/>
    <ROW File="XYNTService.exe" Component_="XYNTService.exe" FileName="XYNTSe~1.exe|XYNTService.exe" Attributes="0" SourcePath="JbossService\XYNTService.exe" SelfReg="false" Sequence="2"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.BuildComponent">
    <ROW BuildName="DefaultBuild" BuildOrder="1" BuildType="1" InstallationType="4"/>
    <ATTRIBUTE name="CurrentBuild" value="DefaultBuild"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.DictionaryComponent">
    <ROW Path="<ui.ail>"/>
    <ROW Path="<ui_en.ail>"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.FragmentComponent">
    <ROW Fragment="FolderDlg.aip" Path="<FolderDlg.aip>"/>
    <ROW Fragment="StaticUIStrings.aip" Path="<StaticUIStrings.aip>"/>
    <ROW Fragment="UI.aip" Path="<UI.aip>"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiAppSearchComponent">
    <ROW Property="INSTALLEDSVC" Signature_="AppSearchSign"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiBinaryComponent">
    <ROW Name="aicustact.dll" SourcePath="<aicustact.dll>"/>
    <ROW Name="default_banner.bmp" SourcePath="<default-banner.bmp>"/>
    <ROW Name="default_dialog.bmp" SourcePath="<default-dialog.bmp>"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiControlComponent">
    <ROW Dialog_="NewDialog" Control="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Attributes="3" Text="[ButtonText_Back]" Control_Next="BannerBitmap" TextLocId="-"/>
    <ROW Dialog_="NewDialog" Control="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" Attributes="1048577" Text="[BannerBitmap]" Control_Next="BannerLine"/>
    <ROW Dialog_="NewDialog" Control="BannerLine" Type="Line" X="0" Y="44" Width="372" Height="0" Attributes="1" Control_Next="BottomLine"/>
    <ROW Dialog_="NewDialog" Control="BottomLine" Type="Line" X="5" Y="234" Width="368" Height="0" Attributes="1" Control_Next="Description"/>
    <ROW Dialog_="NewDialog" Control="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Attributes="3" Text="[ButtonText_Cancel]" Control_Next="Back" TextLocId="-"/>
    <ROW Dialog_="NewDialog" Control="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Attributes="196611" Text="New Dialog Description..." Control_Next="Logo" TextLocId="Control.Text.TemplateDlg#Description"/>
    <ROW Dialog_="NewDialog" Control="Logo" Type="Text" X="4" Y="228" Width="70" Height="12" Attributes="1" Text="Advanced Installer" Control_Next="Title" TextLocId="Control.Text.TemplateDlg#Logo"/>
    <ROW Dialog_="NewDialog" Control="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Attributes="3" Text="[ButtonText_Next]" Control_Next="Cancel" TextLocId="-"/>
    <ROW Dialog_="NewDialog" Control="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Attributes="196611" Text="New Dialog" TextStyle="[DlgTitleFont]" Control_Next="NewDialogEdit_323" TextLocId="Control.Text.TemplateDlg#Title"/>
    <ROW Dialog_="NewDialog" Control="NewDialogEdit_323" Type="Edit" X="84" Y="80" Width="68" Height="18" Attributes="3" Property="SVCNAME" Text="{260}" Control_Next="Next"/>
    <ATTRIBUTE name="FixedSizeBitmaps" value="2"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiControlEventComponent">
    <ROW Dialog_="FolderDlg" Control_="Back" Event="NewDialog" Argument="WelcomeDlg" Condition="AI_INSTALL" Ordering="1"/>
    <ROW Dialog_="WelcomeDlg" Control_="Next" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL" Ordering="1"/>
    <ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="NewDialog" Condition="AI_INSTALL" Ordering="1"/>
    <ROW Dialog_="FolderDlg" Control_="Next" Event="NewDialog" Argument="NewDialog" Condition="AI_INSTALL" Ordering="3"/>
    <ROW Dialog_="MaintenanceTypeDlg" Control_="Back" Event="NewDialog" Argument="MaintenanceWelcomeDlg" Condition="AI_MAINT" Ordering="1"/>
    <ROW Dialog_="MaintenanceWelcomeDlg" Control_="Next" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT" Ordering="2"/>
    <ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="PatchWelcomeDlg" Condition="AI_PATCH" Ordering="1"/>
    <ROW Dialog_="PatchWelcomeDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_PATCH" Ordering="3"/>
    <ROW Dialog_="NewDialog" Control_="Cancel" Event="SpawnDialog" Argument="CancelDlg" Condition="1" Ordering="1"/>
    <ROW Dialog_="NewDialog" Control_="Back" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL" Ordering="1"/>
    <ROW Dialog_="NewDialog" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_INSTALL" Ordering="1"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiCustActComponent">
    <ROW Action="AI_DOWNGRADE" Type="19" Target="4010"/>
    <ROW Action="AI_PREPARE_UPGRADE" Type="1" Source="aicustact.dll" Target="PrepareUpgrade"/>
    <ROW Action="AI_RESTORE_LOCATION" Type="1" Source="aicustact.dll" Target="RestoreLocation"/>
    <ROW Action="AI_STORE_LOCATION" Type="51" Source="ARPINSTALLLOCATION" Target="[APPDIR]"/>
    <ROW Action="PropertySource" Type="51" Source="SVCNAME" Target="[INSTALLEDSVC]"/>
    <ROW Action="SET_APPDIR" Type="307" Source="APPDIR" Target="[ProgramFilesFolder][Manufacturer]\[ProductName]"/>
    <ROW Action="SET_SHORTCUTDIR" Type="307" Source="SHORTCUTDIR" Target="[ProgramMenuFolder][ProductName]"/>
    <ROW Action="SET_TARGETDIR_TO_APPDIR" Type="51" Source="TARGETDIR" Target="[APPDIR]"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiDialogComponent">
    <ROW Dialog="NewDialog" HCentering="50" VCentering="50" Width="370" Height="270" Attributes="3" Title="[ProductName] [Setup]" Control_First="Next" Control_Default="Next" Control_Cancel="Cancel"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiInstExSeqComponent">
    <ROW Action="AI_DOWNGRADE" Condition="AI_NEWERPRODUCTFOUND AND (UILevel <> 5)" Sequence="210"/>
    <ROW Action="AI_RESTORE_LOCATION" Condition="APPDIR=""" Sequence="740"/>
    <ROW Action="AI_STORE_LOCATION" Condition="Not Installed" Sequence="1545"/>
    <ROW Action="AI_PREPARE_UPGRADE" Condition="AI_UPGRADE="No" AND (Not Installed)" Sequence="1300"/>
    <ROW Action="PropertySource" Condition="(REMOVE="ALL")" Sequence="101"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiInstallUISequenceComponent">
    <ROW Action="AI_RESTORE_LOCATION" Condition="APPDIR=""" Sequence="740"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiRegLocatorComponent">
    <ROW Signature_="AppSearchSign" Root="2" Key="Software\Tym Pte Ltd\My IDM Svr" Name="ServiceName" Type="2"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiRegsComponent">
    <ROW Registry="InstallDate" Root="2" Key="Software\[Manufacturer]\[ProductName]" Name="InstallDateTime" Value="[Date] [Time]" Component_="InstallDate"/>
    <ROW Registry="InstallUserName" Root="2" Key="Software\[Manufacturer]\[ProductName]" Name="InstallUserName" Value="[USERNAME]" Component_="InstallUserName"/>
    <ROW Registry="New_Value" Root="2" Key="Software\[Manufacturer]\[ProductName]" Name="New Value" Component_="New_Value"/>
    <ROW Registry="ServiceName" Root="2" Key="Software\[Manufacturer]\[ProductName]" Name="ServiceName" Value="[SVCNAME]" Component_="ServiceName"/>
    <ROW Registry="Version" Root="2" Key="Software\[Manufacturer]\[ProductName]" Name="Version" Value="[ProductVersion]" Component_="Version"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiServCtrlComponent">
    <ROW ServiceControl="ServiceName" Name="[SVCNAME]" Event="161" Wait="1" Component_="XYNTService.exe"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiServInstComponent">
    <ROW ServiceInstall="XYNTService.exe" Name="[SVCNAME]" DisplayName="[SVCNAME]" ServiceType="16" StartType="2" ErrorControl="1" Component_="XYNTService.exe" Description="[SVCNAME]"/>
  </COMPONENT>
  <COMPONENT cid="caphyon.advinst.msicomp.MsiUpgradeComponent">
    <ROW UpgradeCode="[|UpgradeCode]" VersionMax="[|ProductVersion]" Attributes="1025" ActionProperty="OLDPRODUCTS"/>
    <ROW UpgradeCode="[|UpgradeCode]" VersionMin="[|ProductVersion]" Attributes="2" ActionProperty="AI_NEWERPRODUCTFOUND"/>
  </COMPONENT>
</DOCUMENT>
Cosmin
Posts: 5797
Joined: Tue Jul 10, 2007 6:39 pm
Contact: Website

Hi,

You are encountering this problem because the property SVCNAME is never initialized (it is empty when it is written in the registry).

The solution is to initialize it in the "Install Parameters" page (you create a new property with the "Name" SVCNAME and the "Value" is the name of your service). Please note that this is done before you use the property do define your service.

Regards,
Cosmin
Cosmin Pirvu - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube
ymtjia
Posts: 8
Joined: Thu Nov 01, 2007 1:12 am

Hi Cosmin,

I am getting very confused here.

In your last reply, you mentioned about creating the property SVCNAME and initialize it in the "Install Parameters" page and the "Value" is my service name.

However, the SVCNAME value is obtained from a custom dialog box, so, how can I initialize it in the "Install Parameter" page?

Rgds,
ymtjia
Posts: 8
Joined: Thu Nov 01, 2007 1:12 am

Hi Cosmin,

another point I would like to add.

The value of SVCNAME is not empty when it is written to registry. However, during uninstallation, it does not get initialized with registry value, though I have put a custom action under "AppSearch". Could this be a bug in Advanced Installer?

Rgds,
gigi
Posts: 2103
Joined: Tue Apr 11, 2006 9:55 am
Contact: Website

Hi,

The "Property Set With Formatted" custom action is not executed in your case because the condition (REMOVE="ALL") is evaluated to false (the REMOVE property is not yet resolved at this stage ("AppSearch" action)).

So the simplest solution is to use SVCNAME as the search property directly in the "Search" page instead of using INSTALLEDSVC. In this way is no need for that custom action. Or you can schedule that custom action right before "StopServices" action ("UnpublishFeatures" action for example).

To set a default value for that property use the "Default Value" field in the "Dialogs" page ("Properties" list of the control).

Regards,
Gigi
Gheorghe Rada
Advanced Installer Team
http://www.advancedinstaller.com/
ymtjia
Posts: 8
Joined: Thu Nov 01, 2007 1:12 am

Hi Gigi,

Finally, I have gotten it working using your method.

Thanks a lot :D

Rgds,

Return to “Common Problems”