使用wix基于系统区域设置自定义操作设置注册表

时间:2016-01-21 12:03:32

标签: wix wix3.9

无论如何根据系统区域设置设置注册表?例如,我创建以下注册表项而不考虑系统区域设置,并且我只想在系统操作系统使用阿拉伯语和希伯来语时创建此条目。请建议。

<Component Id="HelpViewer_Browser_Emulation" Guid="*">           
<RegistryValue Root="HKLM" Id="HelpViewer_Browser_Emulation" Key="SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION"KeyPath="yes" Type="integer" Value="10001"  Name="myapp.exe"/></Component>

2 个答案:

答案 0 :(得分:2)

我已经通过添加这个条件来解决这个问题。

<Property Id="REGIONLANG">
    <RegistrySearch Id="REGIONLANG_VAL"
                    Root="HKCU"
                    Key="Control Panel\International"
                    Name="sLanguage"
                    Type="raw" />
</Property>
<Component Id="HelpViewer_Browser_Emulation" Guid="*" >
    <Condition>
        <![CDATA[REGIONLANG = "ARA"]]>
    </Condition>
    <RegistryValue Root="HKLM" Id="HelpViewer_Browser_Emulation" Key="SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION" KeyPath="yes" Type="integer" Value="10001"  Name="myapp.exe"/>
</Component>

答案 1 :(得分:1)

您需要检查语言的注册表并将其保存为可变,然后将其用作组件元素中的条件。

<util:RegistrySearch Id="Path"
             Variable="REGIONLANG"
             Root="HKCU"
             Key="Control Panel\International\sLanguage"/>

然后在组件元素中添加一个条件。

例如:

    <Condition>
      <![CDATA[REGIONLANG = 'Place the correct string']]>
    </Condition>