We're in the process of building and configuring GPO and profiles for Windows Server 2016. We're familiar with the XML based start menu file (worked with it in Windows 2012R2).
We've got all our shiny icons just the way we like, we then export them using the powershell command Export-StartLayout, we then copy the xml file to a local path on the server, and then update the GPO to force specific users to use that start menu with the "Start layout" GPO item.
When we log in as the user, everything is there except for the items that end in .url and the .lnk file that is actually a bat file shortcut. If we remove the enforce start menu GPO, the icons appear... we've searched for days now and no-one seems to have an answer.
Here is a copy of our start menu XML
<LayoutModificationTemplate Version="1" xmlns="http://schemas.microsoft.com/Start/2014/LayoutModification">
<LayoutOptions StartTileGroupCellWidth="6" />
<DefaultLayoutOverride>
<StartLayoutCollection>
<defaultlayout:StartLayout GroupCellWidth="6" xmlns:defaultlayout="http://schemas.microsoft.com/Start/2014/FullDefaultLayout">
<start:Group Name="Tools" xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout">
<start:DesktopApplicationTile Size="2x2" Column="0" Row="4" DesktopApplicationLinkPath="%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Server Manager.lnk" />
<start:DesktopApplicationTile Size="2x2" Column="0" Row="0" DesktopApplicationLinkPath="%APPDATA%\Microsoft\Windows\Start Menu\Programs\Windows PowerShell\Windows PowerShell.lnk" />
<start:DesktopApplicationTile Size="2x2" Column="2" Row="0" DesktopApplicationLinkPath="%APPDATA%\Microsoft\Windows\Start Menu\Programs\Windows PowerShell\Windows PowerShell ISE.lnk" />
<start:DesktopApplicationTile Size="2x2" Column="2" Row="4" DesktopApplicationLinkPath="%APPDATA%\Microsoft\Windows\Start Menu\Programs\System Tools\Administrative Tools.lnk" />
<start:DesktopApplicationTile Size="2x2" Column="2" Row="2" DesktopApplicationLinkPath="%APPDATA%\Microsoft\Windows\Start Menu\Programs\System Tools\File Explorer.lnk" />
<start:DesktopApplicationTile Size="2x2" Column="0" Row="2" DesktopApplicationLinkPath="%APPDATA%\Microsoft\Windows\Start Menu\Programs\System Tools\Command Prompt.lnk" />
</start:Group>
<start:Group Name="Apps" xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout">
<start:DesktopApplicationTile Size="2x2" Column="0" Row="2" DesktopApplicationLinkPath="%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Notepad++\Notepad++.lnk" />
<start:DesktopApplicationTile Size="2x2" Column="2" Row="0" DesktopApplicationLinkPath="%APPDATA%\Microsoft\Windows\Start Menu\Programs\Accessories\Internet Explorer.lnk" />
<start:DesktopApplicationTile Size="2x2" Column="2" Row="2" DesktopApplicationLinkPath="%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\StartupUI.lnk" />
<start:DesktopApplicationTile Size="2x2" Column="0" Row="0" DesktopApplicationLinkPath="%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\SumatraPDF.lnk" />
</start:Group>
<start:Group Name="Vyattas" xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout">
<start:DesktopApplicationTile Size="2x2" Column="0" Row="0" DesktopApplicationLinkPath="%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\DAL01 Vyatta.url" />
<start:DesktopApplicationTile Size="2x2" Column="2" Row="0" DesktopApplicationLinkPath="%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\WDC01 Vyatta.url" />
<start:DesktopApplicationTile
DesktopApplicationID="http://www.contoso.com/"
Size="2x2"
Row="0"
Column="2"/>
</start:Group>
</defaultlayout:StartLayout>
</StartLayoutCollection>
</DefaultLayoutOverride>
</LayoutModificationTemplate>
The Vyatta URL's and the startupUi.lnk are the three items we cannot get to appear on the start menu once we enforce the GPO.
The shortcuts are located in the %allusersprofile%
Thank you in advance!
For URLs, use DesktopApplicationID instead of DesktopApplicationLinkPath.
Related
I'm having an issue configuring Windows 10 Kiosk mode recently. I am using the MDM bridge via powershell as directed here: https://learn.microsoft.com/en-us/windows/configuration/kiosk-mdm-bridge
$nameSpaceName="root\cimv2\mdm\dmmap"
$className="MDM_AssignedAccess"
$obj = Get-CimInstance -Namespace $namespaceName -ClassName $className
Add-Type -AssemblyName System.Web
$obj.Configuration = [System.Web.HttpUtility]::HtmlEncode(#"
<?xml version="1.0" encoding="utf-8" ?>
<AssignedAccessConfiguration xmlns="http://schemas.microsoft.com/AssignedAccess/2017/config">
<Profiles>
<Profile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}">
<AllAppsList>
<AllowedApps>
<App AppUserModelId="Microsoft.ZuneMusic_8wekyb3d8bbwe!Microsoft.ZuneMusic" />
<App AppUserModelId="Microsoft.ZuneVideo_8wekyb3d8bbwe!Microsoft.ZuneVideo" />
<App AppUserModelId="Microsoft.Windows.Photos_8wekyb3d8bbwe!App" />
<App AppUserModelId="Microsoft.BingWeather_8wekyb3d8bbwe!App" />
<App AppUserModelId="Microsoft.WindowsCalculator_8wekyb3d8bbwe!App" />
<App DesktopAppPath="%windir%\system32\mspaint.exe" />
<App DesktopAppPath="C:\Windows\System32\notepad.exe" />
</AllowedApps>
</AllAppsList>
<StartLayout>
<![CDATA[<LayoutModificationTemplate xmlns:defaultlayout="http://schemas.microsoft.com/Start/2014/FullDefaultLayout" xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout" Version="1" xmlns="http://schemas.microsoft.com/Start/2014/LayoutModification">
<LayoutOptions StartTileGroupCellWidth="6" />
<DefaultLayoutOverride>
<StartLayoutCollection>
<defaultlayout:StartLayout GroupCellWidth="6">
<start:Group Name="Group1">
<start:Tile Size="4x4" Column="0" Row="0" AppUserModelID="Microsoft.ZuneMusic_8wekyb3d8bbwe!Microsoft.ZuneMusic" />
<start:Tile Size="2x2" Column="4" Row="2" AppUserModelID="Microsoft.ZuneVideo_8wekyb3d8bbwe!Microsoft.ZuneVideo" />
<start:Tile Size="2x2" Column="4" Row="0" AppUserModelID="Microsoft.Windows.Photos_8wekyb3d8bbwe!App" />
<start:Tile Size="2x2" Column="4" Row="4" AppUserModelID="Microsoft.BingWeather_8wekyb3d8bbwe!App" />
<start:Tile Size="4x2" Column="0" Row="4" AppUserModelID="Microsoft.WindowsCalculator_8wekyb3d8bbwe!App" />
</start:Group>
<start:Group Name="Group2">
<start:DesktopApplicationTile Size="2x2" Column="2" Row="0" DesktopApplicationLinkPath="%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Accessories\Paint.lnk" />
<start:DesktopApplicationTile Size="2x2" Column="0" Row="0" DesktopApplicationLinkPath="%APPDATA%\Microsoft\Windows\Start Menu\Programs\Accessories\Notepad.lnk" />
</start:Group>
</defaultlayout:StartLayout>
</StartLayoutCollection>
</DefaultLayoutOverride>
</LayoutModificationTemplate>
]]>
</StartLayout>
<Taskbar ShowTaskbar="true"/>
</Profile>
</Profiles>
<Configs>
<Config>
<Account>MultiAppKioskUser</Account>
<DefaultProfile Id="{9A2A490F-10F6-4764-974A-43B19E722C23}"/>
</Config>
</Configs>
</AssignedAccessConfiguration>
"#)
Set-CimInstance -CimInstance $obj
It was working some weeks ago, but now kiosk mode is not being enforced and all the software is available. I stepped through the code, and now $obj is an empty variable. The result is powershell complaining "Configuration" is no longer a part of the object, which is reasonable because the variable is empty.
I verified some other common CIM classes against "Get-CimInstance" and they result fine. I verified the class does exist under that namespace, and properties does show a "Configuration" value:
Admittedly, this is my first time digging into manipulating CIM so it could be something very obvious I am not seeing. Research hasn't provided me squat. This is occurring on Windows 10 1909 and 20H2.
Appreciate any assistance.
So checking the value as the System user produces the correct result. Permissions issue in evaluating the CIM instance it seems.
I am facing issue with onbeforeunload window event popup in chrome. I have installed chrome extension.
Steps:
Create Open Browser activity with url:
https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_onbeforeunload"\
Create Click Event with selector:
<webctrl aaname='Click here to go to w3schools.com' tag='A' />
Create Click Event with selector:
<ctrl name='Leave site?' role='dialog' /><ctrl name='Leave' role='push button' />
My problem is the second click is not working.
Main.xaml:
<Activity mc:Ignorable="sap sap2010 sads" x:Class="Main" mva:VisualBasic.Settings="{x:Null}" sap2010:WorkflowViewState.IdRef="Main_1"
xmlns="http://schemas.microsoft.com/netfx/2009/xaml/activities"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:mva="clr-namespace:Microsoft.VisualBasic.Activities;assembly=System.Activities"
xmlns:sads="http://schemas.microsoft.com/netfx/2010/xaml/activities/debugger"
xmlns:sap="http://schemas.microsoft.com/netfx/2009/xaml/activities/presentation"
xmlns:sap2010="http://schemas.microsoft.com/netfx/2010/xaml/activities/presentation"
xmlns:scg="clr-namespace:System.Collections.Generic;assembly=mscorlib"
xmlns:sco="clr-namespace:System.Collections.ObjectModel;assembly=mscorlib"
xmlns:ui="http://schemas.uipath.com/workflow/activities"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<TextExpression.NamespacesForImplementation>
<sco:Collection x:TypeArguments="x:String">
<x:String>System.Activities</x:String>
<x:String>System.Activities.Statements</x:String>
<x:String>System.Activities.Expressions</x:String>
<x:String>System.Activities.Validation</x:String>
<x:String>System.Activities.XamlIntegration</x:String>
<x:String>Microsoft.VisualBasic</x:String>
<x:String>Microsoft.VisualBasic.Activities</x:String>
<x:String>System</x:String>
<x:String>System.Collections</x:String>
<x:String>System.Collections.Generic</x:String>
<x:String>System.Data</x:String>
<x:String>System.Diagnostics</x:String>
<x:String>System.Drawing</x:String>
<x:String>System.IO</x:String>
<x:String>System.Linq</x:String>
<x:String>System.Net.Mail</x:String>
<x:String>System.Xml</x:String>
<x:String>System.Xml.Linq</x:String>
<x:String>UiPath.Core</x:String>
<x:String>UiPath.Core.Activities</x:String>
<x:String>System.Windows.Markup</x:String>
</sco:Collection>
</TextExpression.NamespacesForImplementation>
<TextExpression.ReferencesForImplementation>
<sco:Collection x:TypeArguments="AssemblyReference">
<AssemblyReference>System.Activities</AssemblyReference>
<AssemblyReference>Microsoft.VisualBasic</AssemblyReference>
<AssemblyReference>mscorlib</AssemblyReference>
<AssemblyReference>System.Data</AssemblyReference>
<AssemblyReference>System</AssemblyReference>
<AssemblyReference>System.Drawing</AssemblyReference>
<AssemblyReference>System.Core</AssemblyReference>
<AssemblyReference>System.Xml</AssemblyReference>
<AssemblyReference>System.Xml.Linq</AssemblyReference>
<AssemblyReference>UiPath.Core</AssemblyReference>
<AssemblyReference>UiPath.Core.Activities</AssemblyReference>
<AssemblyReference>PresentationFramework</AssemblyReference>
<AssemblyReference>WindowsBase</AssemblyReference>
<AssemblyReference>PresentationCore</AssemblyReference>
<AssemblyReference>System.Xaml</AssemblyReference>
<AssemblyReference>System.ComponentModel.Composition</AssemblyReference>
<AssemblyReference>System.ServiceModel</AssemblyReference>
</sco:Collection>
</TextExpression.ReferencesForImplementation>
<ui:OpenBrowser UiBrowser="{x:Null}" BrowserType="Chrome" DisplayName="Open browser" Hidden="False" sap2010:WorkflowViewState.IdRef="OpenBrowser_3" NewSession="True" Private="False" Url="https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_onbeforeunload">
<ui:OpenBrowser.Body>
<ActivityAction x:TypeArguments="x:Object">
<ActivityAction.Argument>
<DelegateInArgument x:TypeArguments="x:Object" Name="ContextTarget" />
</ActivityAction.Argument>
<Sequence DisplayName="Do" sap2010:WorkflowViewState.IdRef="Sequence_25">
<ui:Click DelayBefore="{x:Null}" DelayMS="{x:Null}" ClickType="CLICK_SINGLE" DisplayName="Click 'A https://www.w3school...'" sap2010:WorkflowViewState.IdRef="Click_6" KeyModifiers="None" MouseButton="BTN_LEFT" SendWindowMessages="False" SimulateClick="False">
<ui:Click.CursorPosition>
<ui:CursorPosition Position="Center">
<ui:CursorPosition.OffsetX>
<InArgument x:TypeArguments="x:Int32" />
</ui:CursorPosition.OffsetX>
<ui:CursorPosition.OffsetY>
<InArgument x:TypeArguments="x:Int32" />
</ui:CursorPosition.OffsetY>
</ui:CursorPosition>
</ui:Click.CursorPosition>
<ui:Click.Target>
<ui:Target ClippingRegion="{x:Null}" Element="{x:Null}" TimeoutMS="{x:Null}" InformativeScreenshot="ad281f65b6ab6cc6ce588fb1cf53160a" Selector="<webctrl aaname='Click here to go to w3schools.com' tag='A' />" WaitForReady="INTERACTIVE" />
</ui:Click.Target>
</ui:Click>
<ui:Click DelayBefore="{x:Null}" DelayMS="{x:Null}" ClickType="CLICK_SINGLE" DisplayName="Click 'push button Leave'" sap2010:WorkflowViewState.IdRef="Click_5" KeyModifiers="None" MouseButton="BTN_LEFT" SendWindowMessages="False" SimulateClick="False">
<ui:Click.CursorPosition>
<ui:CursorPosition Position="Center">
<ui:CursorPosition.OffsetX>
<InArgument x:TypeArguments="x:Int32" />
</ui:CursorPosition.OffsetX>
<ui:CursorPosition.OffsetY>
<InArgument x:TypeArguments="x:Int32" />
</ui:CursorPosition.OffsetY>
</ui:CursorPosition>
</ui:Click.CursorPosition>
<ui:Click.Target>
<ui:Target ClippingRegion="{x:Null}" Element="{x:Null}" TimeoutMS="{x:Null}" InformativeScreenshot="a52efda054f51d9ac88fd53b22f4663a" Selector="<ctrl name='Leave site?' role='dialog' /><ctrl name='Leave' role='push button' />" WaitForReady="INTERACTIVE" />
</ui:Click.Target>
</ui:Click>
</Sequence>
</ActivityAction>
</ui:OpenBrowser.Body>
<sads:DebugSymbol.Symbol>dyhFOlxVaVBhdGhXb3Jrc3BhY2VcV2hhdHNhcHBNc2dcTWFpbi54YW1sBzoDYxQCAQE6vQE6iQICAQdACV8UAgECQQtPFgIBBVALXhYCAQNNngFN5AECAQZcngFc/QECAQQ=</sads:DebugSymbol.Symbol>
</ui:OpenBrowser>
<sap2010:WorkflowViewState.ViewStateManager>
<sap2010:ViewStateManager>
<sap2010:ViewStateData Id="Click_6" sap:VirtualizedContainerService.HintSize="314,106" />
<sap2010:ViewStateData Id="Click_5" sap:VirtualizedContainerService.HintSize="314,106" />
<sap2010:ViewStateData Id="Sequence_25" sap:VirtualizedContainerService.HintSize="336,376">
<sap:WorkflowViewStateService.ViewState>
<scg:Dictionary x:TypeArguments="x:String, x:Object">
<x:Boolean x:Key="IsExpanded">True</x:Boolean>
</scg:Dictionary>
</sap:WorkflowViewStateService.ViewState>
</sap2010:ViewStateData>
<sap2010:ViewStateData Id="OpenBrowser_3" sap:VirtualizedContainerService.HintSize="414,475" />
<sap2010:ViewStateData Id="Main_1" sap:VirtualizedContainerService.HintSize="454,635" />
</sap2010:ViewStateManager>
</sap2010:WorkflowViewState.ViewStateManager>
</Activity>
Which not working with script alerts.
Please find the solved workflow here. It's a tricky way to solve your problem.
I Have a (simple) wix project. In the project, I have a property which gets it's value from the registry (if such registry key exists).
On a dialog, the user sees the value of that property and then can change it.
For some reason, I cannot see that the property gets the value from the registry...
Will appreciate your help:
from the wix project:
<!-- The Registry group of the installation package. -->
<ComponentGroup Id="RegistryGroup">
<Component Id="_70B15100_F11D_48BF_8349_3E3B83157C54" Guid="2F344400-5C37-4CAE-902E-7100FDD2DB22" Transitive="no" Directory="TARGETDIR">
<RegistryKey Root="HKLM" Key="Software\[Manufacturer]\YYY" ForceCreateOnInstall="no" ForceDeleteOnUninstall="no">
<RegistryValue Type="string" Name="ServerPort" Value="[SERVERPORT]" />
<RegistryValue Type="string" Name="ServerAddress" Value="[SERVERADDRESS]" />
</RegistryKey>
</Component>
</ComponentGroup>
<!-- The composite feature of the installation package. -->
<Feature Id="CompleteInstall" Title="All Files" Level="1">
<ComponentGroupRef Id="FileSystemGroup" />
<ComponentGroupRef Id="RegistryGroup" />
</Feature>
<Upgrade Id="{D627BB25-59CB-4387-AF42-0127AC701DBE}">
<UpgradeVersion Minimum="3.11.7" Property="NEWPRODUCTFOUND" OnlyDetect="yes" IncludeMinimum="no" Language="1033" />
<UpgradeVersion Maximum="3.11.7" Property="OLDPRODUCTFOUND" OnlyDetect="no" IncludeMinimum="yes" IncludeMaximum="no" Language="1033" />
</Upgrade>
<InstallExecuteSequence>
<Custom Action="CA_CreateConfig" Sequence="1" />
<Custom Action="DIRCA_TARGETDIR" Before="CostInitialize"><![CDATA[TARGETDIR = ""]]></Custom>
<Custom Action="PreventDowngrading" After="FindRelatedProducts"><![CDATA[NEWPRODUCTFOUND]]></Custom>
<Custom Action="_C976A2F6_5EC5_4EE5_898C_4A660FC42C9F.Commit.SetProperty" After="StartServices"><![CDATA[(NOT DISABLESERVICE) AND $com_DCAB0809_69B4_442E_82E5_E600A7E1E769>2]]></Custom>
<Custom Action="_C976A2F6_5EC5_4EE5_898C_4A660FC42C9F.Commit" After="_C976A2F6_5EC5_4EE5_898C_4A660FC42C9F.Commit.SetProperty"><![CDATA[(NOT DISABLESERVICE) AND $com_DCAB0809_69B4_442E_82E5_E600A7E1E769>2]]></Custom>
<Custom Action="_458FD9FC_2B2B_45E5_B89F_E5C67FA1AB86.Install.SetProperty" After="_C976A2F6_5EC5_4EE5_898C_4A660FC42C9F.Commit"><![CDATA[(NOT DISABLESERVICE) AND $com_DCAB0809_69B4_442E_82E5_E600A7E1E769>2]]></Custom>
<Custom Action="_458FD9FC_2B2B_45E5_B89F_E5C67FA1AB86.Install" After="_458FD9FC_2B2B_45E5_B89F_E5C67FA1AB86.Install.SetProperty"><![CDATA[(NOT DISABLESERVICE) AND $com_DCAB0809_69B4_442E_82E5_E600A7E1E769>2]]></Custom>
<Custom Action="_854AE351_70ED_4318_82B0_B079EDD6C3CD.Rollback.SetProperty" After="_458FD9FC_2B2B_45E5_B89F_E5C67FA1AB86.Install"><![CDATA[(NOT DISABLESERVICE) AND $com_DCAB0809_69B4_442E_82E5_E600A7E1E769>2]]></Custom>
<Custom Action="_854AE351_70ED_4318_82B0_B079EDD6C3CD.Rollback" After="_854AE351_70ED_4318_82B0_B079EDD6C3CD.Rollback.SetProperty"><![CDATA[(NOT DISABLESERVICE) AND $com_DCAB0809_69B4_442E_82E5_E600A7E1E769>2]]></Custom>
<Custom Action="_BEF9A9A6_06F8_43FA_85B9_F40521FCC587.Uninstall.SetProperty" After="MsiUnpublishAssemblies"><![CDATA[(NOT DISABLESERVICE) AND $com_DCAB0809_69B4_442E_82E5_E600A7E1E769=2]]></Custom>
<Custom Action="_BEF9A9A6_06F8_43FA_85B9_F40521FCC587.Uninstall" After="_BEF9A9A6_06F8_43FA_85B9_F40521FCC587.Uninstall.SetProperty"><![CDATA[(NOT DISABLESERVICE) AND $com_DCAB0809_69B4_442E_82E5_E600A7E1E769=2]]></Custom>
<RemoveExistingProducts Before="InstallInitialize" />
<Custom Action="CustomTextA_SetProperty_EDIT1" Sequence="701" />
<Custom Action="CustomTextA_SetProperty_EDIT2" Sequence="702" />
<Custom Action="CustomTextA_SetProperty_EDIT3" Sequence="703" />
<Custom Action="CustomTextA_SetProperty_EDIT4" Sequence="704" />
</InstallExecuteSequence>
<InstallUISequence>
<Custom Action="ERRCA_UIANDADVERTISED" Sequence="5"><![CDATA[ProductState=1]]></Custom>
<AppSearch Sequence="100" />
<FindRelatedProducts Sequence="200" />
<LaunchConditions Sequence="400"><![CDATA[NOT Installed]]></LaunchConditions>
<CCPSearch Sequence="500"><![CDATA[NOT Installed]]></CCPSearch>
<RMCCPSearch Sequence="600"><![CDATA[NOT Installed]]></RMCCPSearch>
<ValidateProductID Sequence="700" />
<Custom Action="DIRCA_TARGETDIR" Before="CostInitialize"><![CDATA[TARGETDIR = ""]]></Custom>
<Custom Action="PreventDowngrading" After="FindRelatedProducts"><![CDATA[NEWPRODUCTFOUND]]></Custom>
<CostInitialize Sequence="800" />
<FileCost Sequence="900" />
<IsolateComponents Sequence="950"><![CDATA[RedirectedDllSupport]]></IsolateComponents>
<CostFinalize Sequence="1000" />
<ExecuteAction Sequence="1300" />
<Custom Action="CustomTextA_SetProperty_EDIT1" Sequence="701" />
<Custom Action="CustomTextA_SetProperty_EDIT2" Sequence="702" />
<Custom Action="CustomTextA_SetProperty_EDIT3" Sequence="703" />
<Custom Action="CustomTextA_SetProperty_EDIT4" Sequence="704" />
<Show Dialog="CustomTextA" Sequence="1001"><![CDATA[Installed="" AND NOT RESUME]]></Show>
<Show Dialog="ProgressForm" Sequence="1299" />
<Show Dialog="FatalErrorForm" OnExit="error"><![CDATA[NOT HideFatalErrorForm]]></Show>
<Show Dialog="UserExitForm" OnExit="cancel" />
<Show Dialog="FinishedForm" OnExit="success" />
<Custom Action="VSDCA_FolderForm_AllUsers" Sequence="997"><![CDATA[Installed="" AND NOT RESUME AND ALLUSERS=1]]></Custom>
<Show Dialog="ResumeForm" Sequence="998"><![CDATA[Installed="" AND RESUME]]></Show>
<Show Dialog="MaintenanceForm" Sequence="999"><![CDATA[Installed<>""]]></Show>
</InstallUISequence>
<AdminUISequence>
<Custom Action="DIRCA_TARGETDIR" Before="CostInitialize"><![CDATA[TARGETDIR = ""]]></Custom>
<CostInitialize Sequence="800" />
<FileCost Sequence="900" />
<CostFinalize Sequence="1000" />
<ExecuteAction Sequence="1300" />
<Show Dialog="AdminWelcomeForm" Sequence="1001"><![CDATA[Installed="" AND NOT RESUME]]></Show>
<Show Dialog="AdminProgressForm" Sequence="1299" />
<Show Dialog="AdminFatalErrorForm" OnExit="error" />
<Show Dialog="AdminUserExitForm" OnExit="cancel" />
<Show Dialog="AdminFinishedForm" OnExit="success" />
<Show Dialog="AdminResumeForm" Sequence="998"><![CDATA[Installed="" AND RESUME]]></Show>
<Show Dialog="AdminMaintenanceForm" Sequence="999"><![CDATA[Installed<>""]]></Show>
</AdminUISequence>
<UI Id="Base">
<Error Id="1001">Error [1]. [2]</Error>
<Property Id="VSDNETURLMSG" Value="This setup requires the .NET Framework version [1]. Please install the .NET Framework and run this setup again. The .NET Framework can be obtained from the web. Would you like to do this now?" />
<Property Id="VSDIISMSG" Value="This setup requires Internet Information Server 5.1 or higher and Windows XP or higher. This setup cannot be installed on Windows 2000. Please install Internet Information Server or a newer operating system and run this setup again." />
<Property Id="VSDUIANDADVERTISED" Value="This advertised application will not be installed because it might be unsafe. Contact your administrator to change the installation user interface option of the package to basic." />
<Property Id="VSDNETMSG" Value="This setup requires the .NET Framework version [1]. Please install the .NET Framework and run this setup again." />
<Property Id="VSDINVALIDURLMSG" Value="The specified path '[2]' is unavailable. The Internet Information Server might not be running or the path exists and is redirected to another machine. Please check the status of this virtual directory in the Internet Services Manager." />
<Property Id="VSDVERSIONMSG" Value="Unable to install because a newer version of this product is already installed." />
</UI>
<CustomAction Id="CustomTextA_SetProperty_EDIT1" Property="SERVERADDRESS" Value="[SERVERADDRESS]" Execute="firstSequence" />
<CustomAction Id="CustomTextA_SetProperty_EDIT2" Property="SERVERPORT" Value="[SERVERPORT]" Execute="firstSequence" />
<CustomAction Id="CustomTextA_SetProperty_EDIT3" Property="EDITA3" Value="" Execute="firstSequence" />
<CustomAction Id="CustomTextA_SetProperty_EDIT4" Property="EDITA4" Value="" Execute="firstSequence" />
<CustomAction Id="VSDCA_FolderForm_AllUsers" Property="FolderForm_AllUsers" Value="ALL" />
<CustomAction Id="ERRCA_UIANDADVERTISED" Error="[VSDUIANDADVERTISED]" />
<Property Id="CustomTextA_NextArgs" Value="EulaForm" />
<Property Id="EulaForm_PrevArgs" Value="CustomTextA" />
<Property Id="EulaForm_NextArgs" Value="WelcomeForm" />
<Property Id="WelcomeForm_PrevArgs" Value="EulaForm" />
<Property Id="WelcomeForm_NextArgs" Value="ConfirmInstallForm" />
<Property Id="ConfirmInstallForm_PrevArgs" Value="WelcomeForm" />
<UI Id="CustomText1Dlg">
<Dialog Id="CustomTextA" X="50" Y="50" Width="373" Height="287" Title="[ProductName]">
<Control Id="NextButton" Type="PushButton" X="300" Y="261" Width="66" Height="18" Text="{\VSI_MS_Sans_Serif13.0_0_0}&Next >" TabSkip="no" Default="yes">
<Publish Event="EndDialog" Value="Return"><![CDATA[CustomTextA_NextArgs=""]]></Publish>
<Publish Event="NewDialog" Value="[CustomTextA_NextArgs]"><![CDATA[CustomTextA_NextArgs<>""]]></Publish>
</Control>
<Control Id="Label1" Type="Text" X="18" Y="108" Width="348" Height="12" Text="{\VSI_MS_Sans_Serif13.0_0_0}Server Address (leave empty for default)" TabSkip="no" />
<Control Id="Edit1" Type="Edit" X="18" Y="120" Width="348" Height="18" Text="{\VSI_MS_Sans_Serif13.0_0_0}" TabSkip="no" Property="SERVERADDRESS" Sunken="yes" />
<Control Id="Label2" Type="Text" X="18" Y="144" Width="348" Height="12" Text="{\VSI_MS_Sans_Serif13.0_0_0}Server Port (leave empty for default)" TabSkip="no" />
<Control Id="Edit2" Type="Edit" X="18" Y="156" Width="348" Height="18" Text="{\VSI_MS_Sans_Serif13.0_0_0}" TabSkip="no" Property="SERVERPORT" Sunken="yes" />
<Control Id="Label3" Type="Text" X="18" Y="180" Width="348" Height="12" Text="{\VSI_MS_Sans_Serif13.0_0_0}Edit3:" Hidden="yes" TabSkip="no" />
<Control Id="Edit3" Type="Edit" X="18" Y="192" Width="348" Height="18" Text="{\VSI_MS_Sans_Serif13.0_0_0}" TabSkip="no" Property="EDITA3" Hidden="yes" Sunken="yes" />
<Control Id="Label4" Type="Text" X="18" Y="216" Width="348" Height="12" Text="{\VSI_MS_Sans_Serif13.0_0_0}Edit4:" Hidden="yes" TabSkip="no" />
<Control Id="Edit4" Type="Edit" X="18" Y="228" Width="348" Height="18" Text="{\VSI_MS_Sans_Serif13.0_0_0}" TabSkip="no" Property="EDITA4" Hidden="yes" Sunken="yes" />
<Control Id="CancelButton" Type="PushButton" X="156" Y="261" Width="66" Height="18" Text="{\VSI_MS_Sans_Serif13.0_0_0}Cancel" TabSkip="no" Cancel="yes">
<Publish Event="SpawnDialog" Value="Cancel" />
</Control>
<Control Id="PreviousButton" Type="PushButton" X="228" Y="261" Width="66" Height="18" Text="{\VSI_MS_Sans_Serif13.0_0_0}< &Back" TabSkip="no">
<Condition Action="disable"><![CDATA[CustomTextA_PrevArgs=""]]></Condition>
<Condition Action="enable"><![CDATA[CustomTextA_PrevArgs<>""]]></Condition>
<Publish Event="NewDialog" Value="[CustomTextA_PrevArgs]"><![CDATA[CustomTextA_PrevArgs<>""]]></Publish>
</Control>
<Control Id="BannerBmp" Type="Bitmap" X="0" Y="0" Width="375" Height="52" Text="_bbb3a8b4c218495cb88ea30ee85d4499" TabSkip="no" Disabled="yes" />
<Control Id="BodyText" Type="Text" X="9" Y="63" Width="354" Height="42" Text="{\VSI_MS_Sans_Serif13.0_0_0}The installed agent will use the following connection properties." TabSkip="yes" NoPrefix="yes" />
<Control Id="BannerText" Type="Text" X="9" Y="9" Width="306" Height="33" Text="{\VSI_MS_Sans_Serif16.0_1_0}Specify Connection Details" TabSkip="yes" Transparent="yes" NoPrefix="yes" />
<Control Id="Control273" Type="Line" X="0" Y="252" Width="375" Height="6" Text="{\VSI_MS_Sans_Serif13.0_0_0}MsiHorizontalLine" TabSkip="yes" Disabled="yes" />
<Control Id="Control278" Type="Line" X="0" Y="52" Width="375" Height="6" Text="{\VSI_MS_Sans_Serif16.0_1_0}MsiHorizontalLine" TabSkip="yes" Disabled="yes" />
</Dialog>
</UI>
You say that you are getting the value of the property from the registry, but that requires a RegistrySearch element and there doesn't seem to be one in your WiX source.
My problem was that I used a tool that automatically converted my vdproj to a wix project. This conversion was not perfect and it created a custom action and a set property that I did not need. Once these were deleted, everything worked perfectly.
I want to make two spark grid columns editable on check box click event.I have written following code for that. but i dont have java function to implement this.
so can anyone plz help me..?
<s:DataGrid id="dataGrid" x="3" y="44" width="792" height="243" editable="true" fontSize="15"
requestedRowCount="4" dataProvider="{getSalesReturnCgt.lastResult}">
<s:columns>
<s:ArrayList>
<s:GridColumn dataField="selectFlag" rendererIsEditable="true" headerText="SrNo" width="60" editable="false">
<s:itemRenderer>
<fx:Component>
<s:GridItemRenderer>
<s:layout>
<s:HorizontalLayout horizontalAlign="center" verticalAlign="middle"/>
</s:layout>
</fx:Script>
<s:Label id="srno" text="{cgtsrobj.sr_no}" />
<s:CheckBox id="chkBox" click="chkBox_clickHandler(event)" />
</s:GridItemRenderer>
</fx:Component>
</s:itemRenderer>
</s:GridColumn>
<s:GridColumn dataField="lot_Id" headerText="Item"></s:GridColumn>
<s:GridColumn dataField="lot_Description" headerText="Item Description"></s:GridColumn>
<s:GridColumn dataField="local_Price" headerText="Rate"></s:GridColumn>
<s:GridColumn dataField="discount" headerText="Discount"></s:GridColumn>
<s:GridColumn dataField="available_qty" headerText="Avail Qty"></s:GridColumn>
<s:GridColumn dataField="return_qty" headerText="Return Qty" id="txtReturn">
<s:itemEditor>
<fx:Component>
<s:TextInput restrict="0-9" width="20" visible="true" />
</fx:Component>
</s:itemEditor>
</s:GridColumn>
<s:GridColumn dataField="sales_qty" headerText="Sales Qty" >
<s:itemEditor>
<fx:Component>
<s:TextInput restrict="0-9" width="20" visible="true" />
</fx:Component>
</s:itemEditor>
</s:GridColumn>
<s:GridColumn dataField=" " headerText="Amount"></s:GridColumn>
</s:ArrayList>
</s:columns>
First of all, you dont need java code for this, now to achieve this, write the chkBox_clickHandler function, from there you should dispatch an event which you should handle in GridItemEditor
I have a WiX project that installs a few EXE files. One is the 'Main' executable and the others are supporting programs to help diagnose problems.
The main executable is optional, and the support programs will run on their own. Often, the end user will install a third-party program instead of my main executable.
At the end of the WiX installer, I want to have a 'launch program' checkbox that will run the program as soon as the installer closes.
I can hide the checkbox based on the INSTALLLEVEL property, but that only changes depending on if the user selected a 'Typical' or 'Complete' install. I would like to hide it based on if the main executable feature is installed or not.
Something like this would be ideal:
<Feature Id='MainProgram' Title='MainExe'
Description='This application stores and displays information from our hardware.'
ConfigurableDirectory='INSTALLDIR' Level='4'
AllowAdvertise='no'>
<ComponentRef Id='MainExecutable' />
<ComponentRef Id='SQLLibrary' />
<ComponentRef Id='ProgramIcon' />
<ComponentRef Id='RemovePluginsFolder'/>
<Property Id='ShowFinalCheckbox'>1</Property> #<--This won't work, but I'd like it to.
</Feature>
The SetProperty element can be used to change the value of a Property before or after an action. To set a value based on the install state of an executable I would use a combination of Component states documented in the Conditional Statement Syntax in MSI SDK. You'll have to play around with this example, but I think this will get you close.
<SetProperty Id="ShowFinalCheckBox" Value="1" After="CostFinalize">?MainExecutableComponent>2 OR $MainExecutableComponent>2</SetProperty>
All of the magic in there is explained in the link to the MSI SDK above.
For WiX 2 you can use &Feature to find out if that feature is installed or not:
<Dialog Id="ExitDlg" Width="370" Height="270" Title="[ProductName] [Setup]" NoMinimize="yes">
<Control Id="Finish" Type="PushButton" X="236" Y="243" Width="56" Height="17"
Default="yes" Cancel="yes" Text="Finish">
<Publish Event="EndDialog" Value="Return">1</Publish>
<Publish Event="DoAction" Value="LaunchFile">(NOT Installed) AND (LAUNCHPRODUCT = 1) AND (&MainExecutable = 3)</Publish>
</Control>
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Disabled="yes" Text="Cancel" />
<Control Id="Bitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="234" TabSkip="no" Text="[DialogBitmap]" />
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Disabled="yes" Text="Back" />
<Control Id="Description" Type="Text" X="135" Y="70" Width="220" Height="20" Transparent="yes" NoPrefix="yes">
<Text>Click the Finish button to exit the Wizard.</Text>
</Control>
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
<Control Id="Title" Type="Text" X="135" Y="20" Width="220" Height="60" Transparent="yes" NoPrefix="yes">
<Text>{\VerdanaBold13}Completing the [ProductName] Wizard</Text>
</Control>
<Control Id="Launch" Type="CheckBox" X="135" Y="120" Width="150" Height="17"
Property="LAUNCHPRODUCT" CheckBoxValue="1">
<Text>Launch [ProductName]</Text>
<Condition Action="hide">
NOT (&MainProgramFeature = 3)
</Condition>
</Control>
</Dialog>
This way, you can hide the dialog and use the same condition to not launch the program (regardless of the initial state of the check box).
It has been well documented in the manual, How To: Run the Installed Application After Setup.