]> granicus.if.org Git - python/commitdiff
Enables shortcuts to be deselected when installing on Windows.
authorSteve Dower <steve.dower@microsoft.com>
Sun, 3 May 2015 21:54:32 +0000 (14:54 -0700)
committerSteve Dower <steve.dower@microsoft.com>
Sun, 3 May 2015 21:54:32 +0000 (14:54 -0700)
14 files changed:
Doc/using/windows.rst
Tools/msi/bundle/Default.thm
Tools/msi/bundle/Default.wxl
Tools/msi/bundle/bootstrap/PythonBootstrapperApplication.cpp
Tools/msi/bundle/bundle.wxs
Tools/msi/bundle/packagegroups/doc.wxs
Tools/msi/bundle/packagegroups/exe.wxs
Tools/msi/doc/doc.wxs
Tools/msi/doc/doc_files.wxs
Tools/msi/exe/exe.wxs
Tools/msi/exe/exe_files.wxs
Tools/msi/tcltk/tcltk.wixproj
Tools/msi/tcltk/tcltk.wxs
Tools/msi/tcltk/tcltk_reg.wxs [new file with mode: 0644]

index 47d6fd0afe2950af62059851d688bd32dc306b8b..999ec1fc443be7544c01de9133a00280430d0e48 100644 (file)
@@ -115,6 +115,9 @@ of available options is shown below.
 |                           | tho :envvar:`PATH` and ``.PY`` to    |                          |
 |                           | :envvar:`PATHEXT`                    |                          |
 +---------------------------+--------------------------------------+--------------------------+
+| Shortcuts                 | Create shortcuts for the interpreter,| 1                        |
+|                           | documentation and IDLE if installed. |                          |
++---------------------------+--------------------------------------+--------------------------+
 | Include_doc               | Install Python manual                | 1                        |
 +---------------------------+--------------------------------------+--------------------------+
 | Include_debug             | Install debug binaries               | 0                        |
index 2d84872593dfbfb6ed9a1dfd15cd7caf1fc05b16..a081850a2575363ddf222e595988db3a2b0c6522 100644 (file)
         
         <Checkbox Name="InstallAllUsers" X="185" Y="51" Width="-11" Height="20" TabStop="yes" FontId="3" HideWhenDisabled="no">#(loc.InstallAllUsersLabel)</Checkbox>
         <Checkbox Name="AssociateFiles" X="185" Y="76" Width="-11" Height="20" TabStop="yes" FontId="3" HideWhenDisabled="no">#(loc.AssociateFilesLabel)</Checkbox>
-        <Checkbox Name="PrependPath" X="185" Y="101" Width="-11" Height="20" TabStop="yes" FontId="3" HideWhenDisabled="no">#(loc.PrependPathLabel)</Checkbox>
-        <Checkbox Name="CompileAll" X="185" Y="126" Width="-11" Height="20" TabStop="yes" FontId="3" HideWhenDisabled="no">#(loc.PrecompileLabel)</Checkbox>
-        <Checkbox Name="Include_symbols" X="185" Y="151" Width="-11" Height="20" TabStop="yes" FontId="3" HideWhenDisabled="no">#(loc.Include_symbolsLabel)</Checkbox>
-        <Checkbox Name="Include_debug" X="185" Y="176" Width="-11" Height="20" TabStop="yes" FontId="3" HideWhenDisabled="no">#(loc.Include_debugLabel)</Checkbox>
-
-        <Text X="185" Y="221" Width="-11" Height="17" FontId="3">#(loc.CustomLocationLabel)</Text>
-        <Editbox Name="TargetDir" X="185" Y="237" Width="-91" Height="21" TabStop="yes" FontId="3" FileSystemAutoComplete="yes" />
-        <Button Name="CustomBrowseButton" X="-11" Y="236" Width="75" Height="23" TabStop="yes" FontId="3">#(loc.CustomBrowseButton)</Button>
-        <Text Name="CustomBrowseButtonLabel" X="185" Y="261" Width="-91" Height="35" FontId="5" Visible="no">#(loc.CustomLocationHelpLabel)</Text>
+        <Checkbox Name="Shortcuts" X="185" Y="101" Width="-11" Height="20" TabStop="yes" FontId="3" HideWhenDisabled="no">#(loc.ShortcutsLabel)</Checkbox>
+        <Checkbox Name="PrependPath" X="185" Y="126" Width="-11" Height="20" TabStop="yes" FontId="3" HideWhenDisabled="no">#(loc.PrependPathLabel)</Checkbox>
+        <Checkbox Name="CompileAll" X="185" Y="151" Width="-11" Height="20" TabStop="yes" FontId="3" HideWhenDisabled="no">#(loc.PrecompileLabel)</Checkbox>
+        <Checkbox Name="Include_symbols" X="185" Y="176" Width="-11" Height="20" TabStop="yes" FontId="3" HideWhenDisabled="no">#(loc.Include_symbolsLabel)</Checkbox>
+        <Checkbox Name="Include_debug" X="185" Y="201" Width="-11" Height="20" TabStop="yes" FontId="3" HideWhenDisabled="no">#(loc.Include_debugLabel)</Checkbox>
+
+        <Text X="185" Y="241" Width="-11" Height="17" FontId="3">#(loc.CustomLocationLabel)</Text>
+        <Editbox Name="TargetDir" X="185" Y="257" Width="-91" Height="21" TabStop="yes" FontId="3" FileSystemAutoComplete="yes" />
+        <Button Name="CustomBrowseButton" X="-11" Y="256" Width="75" Height="23" TabStop="yes" FontId="3">#(loc.CustomBrowseButton)</Button>
+        <Text Name="CustomBrowseButtonLabel" X="185" Y="281" Width="-91" Height="35" FontId="5" Visible="no">#(loc.CustomLocationHelpLabel)</Text>
 
         <Button Name="Custom2BackButton" X="185" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.CustomBackButton)</Button>
         <Button Name="CustomInstallButton" X="-91" Y="-11" Width="95" Height="23" TabStop="yes" FontId="0">#(loc.CustomInstallButton)</Button>
index d578c347e179b687a30cdf03f72d94103da7d11c..ba67fc7f8cf636ee0ede921b5db2e10aa8df12ed 100644 (file)
@@ -42,7 +42,8 @@ Continue?</String>
   <String Id="InstallAcceptCheckbox">I &amp;agree to the license terms and conditions</String>
   <String Id="InstallJustForMeButton">&amp;Install Now</String>
   <String Id="InstallJustForMeButtonNote">[DefaultJustForMeTargetDir]
-Includes IDLE and pip
+
+Includes IDLE, pip and documentation
 Creates shortcuts and file associations</String>
   <String Id="InstallCustomButton">C&amp;ustomize installation</String>
   <String Id="InstallCustomButtonNote">Choose location and features</String>
@@ -68,6 +69,7 @@ Creates shortcuts and file associations</String>
   <String Id="Include_launcherHelpLabel">Installs the global 'py' launcher to make it easier to start Python.</String>
   
   <String Id="AssociateFilesLabel">Associate &amp;files with Python (requires the py launcher)</String>
+  <String Id="ShortcutsLabel">Create shortcuts for installed applications</String>
   <String Id="PrependPathLabel">Add Python to &amp;environment variables</String>
   <String Id="ShortPrependPathLabel">Add &amp;Python [ShortVersion] to PATH</String>
   <String Id="InstallAllUsersLabel">Install as &amp;Administrator</String>
index ac92b2ff9e497bf3fa44886f440ee9158ecf02ff..435cde3e0c686665f2065a23094bd843f83ce109 100644 (file)
@@ -746,8 +746,8 @@ public: // IBootstrapperApplication
     ) {
         LONGLONG install;
         
-        if (wcscmp(wzFeatureId, L"AssociateFiles") == 0) {
-            if (SUCCEEDED(_engine->GetVariableNumeric(L"AssociateFiles", &install)) && install) {
+        if (wcscmp(wzFeatureId, L"AssociateFiles") == 0 || wcscmp(wzFeatureId, L"Shortcuts") == 0) {
+            if (SUCCEEDED(_engine->GetVariableNumeric(wzFeatureId, &install)) && install) {
                 *pRequestedState = BOOTSTRAPPER_FEATURE_STATE_LOCAL;
             } else {
                 *pRequestedState = BOOTSTRAPPER_FEATURE_STATE_ABSENT;
index 57bb4b24b1a6e3fb22ea05590090712868174fab..c8a7f5c9d540b440e4692dec8a1976e4588e7ee8 100644 (file)
@@ -58,6 +58,7 @@
     <Variable Name="Include_debug" Value="0" Persisted="yes" bal:Overridable="yes" />
     
     <Variable Name="AssociateFiles" Value="1" Persisted="yes" bal:Overridable="yes" />
+    <Variable Name="Shortcuts" Value="1" Persisted="yes" bal:Overridable="yes" />
     <Variable Name="PrependPath" Value="0" Persisted="yes" bal:Overridable="yes" />
     <Variable Name="CompileAll" Value="1" Persisted="yes" bal:Overridable="yes" />
     
index 24b9ff18837f9f7607f7a7a1c80c6e493f6f5b5f..7843f44263a3a5851592e2fd1e685e3f731deb8c 100644 (file)
@@ -6,6 +6,7 @@
                         SourceFile="doc.msi"
                         Compressed="$(var.CompressMSI)"
                         DownloadUrl="$(var.DownloadUrl)"
+                        EnableFeatureSelection="yes"
                         ForcePerMachine="yes"
                         InstallCondition="InstallAllUsers and Include_doc">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
@@ -15,6 +16,7 @@
                         SourceFile="doc.msi"
                         Compressed="$(var.CompressMSI)"
                         DownloadUrl="$(var.DownloadUrl)"
+                        EnableFeatureSelection="yes"
                         ForcePerMachine="no"
                         InstallCondition="not InstallAllUsers and Include_doc">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
index 046b90ec2c60dc1082df6d011159bcb7dcdb5f44..50346d94a1670b63783e7e63f7e235f7696c6b2a 100644 (file)
@@ -7,6 +7,7 @@
                         ForcePerMachine="yes"
                         Compressed="$(var.CompressMSI)"
                         DownloadUrl="$(var.DownloadUrl)"
+                        EnableFeatureSelection="yes"
                         InstallCondition="InstallAllUsers and (Include_exe or Include_launcher or Include_pip)">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
             </MsiPackage>
@@ -32,6 +33,7 @@
                         ForcePerMachine="no"
                         Compressed="$(var.CompressMSI)"
                         DownloadUrl="$(var.DownloadUrl)"
+                        EnableFeatureSelection="yes"
                         InstallCondition="not InstallAllUsers and (Include_exe or Include_launcher or Include_pip)">
                 <MsiProperty Name="TARGETDIR" Value="[TargetDir]" />
             </MsiPackage>
index ddab83b5ea5ad400fd2a673e3e0e0a691e58d2b8..22b0213932458aa37beee820b8f44ceb422587df 100644 (file)
@@ -8,13 +8,14 @@
         <PropertyRef Id="REGISTRYKEY" />
         
         <Feature Id="DefaultFeature" AllowAdvertise="no" Title="!(loc.Title)" Description="!(loc.Description)">
+            <ComponentGroupRef Id="doc" Primary="yes" />
+        </Feature>
+        <Feature Id="Shortcuts" AllowAdvertise="no" Title="!(loc.Title)" Description="!(loc.Description)">
             <ComponentGroupRef Id="doc" />
             
             <?ifdef DocFilename ?>
             <Component Id="doc_shortcut" Directory="MenuDir" Guid="*">
-                <RegistryKey Root="HKMU" Key="[REGISTRYKEY]">
-                    <RegistryValue Key="Help\Main Python Documentation" Type="string" Value="[#python.chm]" KeyPath="yes" />
-                </RegistryKey>
+                <RegistryValue Root="HKMU" Key="[REGISTRYKEY]\DocShortcuts" Type="integer" Value="1" KeyPath="yes" />
                 <Shortcut Id="python.chm"
                           Target="[#python.chm]"
                           Name="!(loc.ShortcutName)"
index b2aabfb8ce55761f6d9166c949b430e12580f9d8..fe09afe4d3c76bb7f0705fdbc746366f0de3f19a 100644 (file)
@@ -6,6 +6,9 @@
         <ComponentGroup Id="doc">
             <Component Id="python.chm" Directory="Doc" Guid="*">
                 <File Id="python.chm" Name="$(var.DocFilename)" KeyPath="yes" />
+                <RegistryKey Root="HKMU" Key="[REGISTRYKEY]">
+                    <RegistryValue Key="Help\Main Python Documentation" Type="string" Value="[#python.chm]" />
+                </RegistryKey>
             </Component>
         </ComponentGroup>
     </Fragment>
index 9696c899410a3228e9e5a497fa0773e41e14ac6d..d8b05e0f584eac85231367f4b2003d1d8bf1dfb7 100644 (file)
@@ -8,10 +8,13 @@
         <PropertyRef Id="REGISTRYKEY" />
         
         <Feature Id="DefaultFeature" AllowAdvertise="no" Title="!(loc.Title)" Description="!(loc.Description)">
-            <ComponentGroupRef Id="exe_python" />
+            <ComponentGroupRef Id="exe_python" Primary="yes" />
             <ComponentGroupRef Id="exe_txt" />
             <ComponentGroupRef Id="exe_icons" />
+        </Feature>
             
+        <Feature Id="Shortcuts" AllowAdvertise="no" Title="!(loc.Title)" Description="!(loc.Description)">
+            <ComponentGroupRef Id="exe_python" />
             <Component Id="exe_shortcut" Directory="MenuDir" Guid="*">
                 <Shortcut Id="python.exe"
                           Target="[#python.exe]"
@@ -19,8 +22,7 @@
                           Description="!(loc.ShortcutDescription)" />
                 <RemoveFolder Id="Remove_MenuDir" Directory="MenuDir" On="uninstall" />
                 <RegistryKey Root="HKMU" Key="[REGISTRYKEY]">
-                    <RegistryValue Key="InstallPath" Type="string" Value="[InstallDirectory]" KeyPath="yes" />
-                    <RegistryValue Key="InstallPath\InstallGroup" Type="string" Value="Python $(var.ShortVersion)" />
+                    <RegistryValue Key="InstallPath\InstallGroup" Type="string" Value="!(loc.ProductName)" KeyPath="yes" />
                 </RegistryKey>
             </Component>
         </Feature>
index 409139829735362175426504beb6f03895c86544..642237299f3195455b2cefd9ce0bb49a432eeb76 100644 (file)
         <ComponentGroup Id="exe_python">
             <Component Id="python.exe" Directory="InstallDirectory" Guid="$(var.PythonExeComponentGuid)">
                 <File Name="python.exe" KeyPath="yes" />
+                
+                <RegistryKey Root="HKMU" Key="[REGISTRYKEY]">
+                    <RegistryValue Key="InstallPath" Type="string" Value="[InstallDirectory]" KeyPath="no" />
+                </RegistryKey>
             </Component>
             <Component Id="pythonw.exe" Directory="InstallDirectory" Guid="$(var.PythonwExeComponentGuid)">
                 <File Name="pythonw.exe" KeyPath="yes" />
index 4d1d74c99e89dde2e42c785e6b68d1bac1422763..f66fc149884f40b91d3a6b2c1a79cd7657fd39e6 100644 (file)
@@ -14,6 +14,7 @@
     <ItemGroup>
         <Compile Include="tcltk.wxs" />
         <Compile Include="tcltk_files.wxs" />
+        <Compile Include="tcltk_reg.wxs" />
     </ItemGroup>
     <ItemGroup>
         <WxlTemplate Include="*.wxl_template" />
index 4a0d80f9ebe439d335d26cf532fa0b2cd667c9fc..5def5ed4db7859e1716a5f013f82a8c3a8d38c34 100644 (file)
             <ComponentGroupRef Id="tcltk_lib" />
             <ComponentGroupRef Id="tkinter_lib" Primary="yes" />
             
-            <Component Id="idle_shortcut" Directory="MenuDir">
+            <Component Id="idle_reg" Directory="InstallDirectory">
                 <RegistryValue KeyPath="yes" Root="HKMU" Key="[REGISTRYKEY]\Idle" Type="string" Value="[#Lib_idlelib_idle.pyw]" />
+            </Component>
+        </Feature>
+        <Feature Id="AssociateFiles" AllowAdvertise="no" Title="!(loc.Title)" Description="!(loc.Description)">
+            <ComponentGroupRef Id="tkinter_lib" />
+            <ComponentGroupRef Id="idle_reg" />
+        </Feature>
+        <Feature Id="Shortcuts" AllowAdvertise="no" Title="!(loc.Title)" Description="!(loc.Description)">
+            <ComponentGroupRef Id="tkinter_lib" />
+            
+            <Component Id="idle_shortcut" Directory="MenuDir">
+                <RegistryValue Root="HKMU" Key="[REGISTRYKEY]\IdleShortcuts" Type="integer" Value="1" KeyPath="yes" />
                 <RemoveFolder Id="Remove_MenuDir" On="uninstall" />
 
                 <Shortcut Id="IDLE"
                           Icon="idle.exe" />
             </Component>
         </Feature>
-        <Feature Id="AssociateFiles" AllowAdvertise="no" Title="!(loc.Title)" Description="!(loc.Description)">
-            <ComponentGroupRef Id="tkinter_lib" />
-            
-            <!-- We fix the guid of the Subcommands key so that it is correctly reference counted -->
-            <Component Id="assoc_subcommands" Directory="InstallDirectory" Guid="{57D47B4C-96E6-40A0-A958-57083D74423F}">
-                <Condition>VersionNT > 600</Condition>
-                <RegistryValue Root="HKCR" Key="$(var.TestPrefix)Python.File\Shell\editwithidle" Name="MUIVerb" Value="!(loc.EditMenu)" Type="string" KeyPath="yes" />
-                <RegistryValue Root="HKCR" Key="$(var.TestPrefix)Python.File\Shell\editwithidle" Name="Subcommands" Value="" Type="string" KeyPath="no" />
-            </Component>
-            <Component Id="assoc_subcommands_nocon" Directory="InstallDirectory" Guid="{07061D85-9151-4FC4-BB78-13628020D026}">
-                <Condition>VersionNT > 600</Condition>
-                <RegistryValue Root="HKCR" Key="$(var.TestPrefix)Python.NoConFile\Shell\editwithidle" Name="MUIVerb" Value="!(loc.EditMenu)" Type="string" KeyPath="yes" />
-                <RegistryValue Root="HKCR" Key="$(var.TestPrefix)Python.NoConFile\Shell\editwithidle" Name="Subcommands" Value="" Type="string" KeyPath="no" />
-            </Component>
-            
-            <Component Id="assoc_editwithidle" Directory="InstallDirectory">
-                <Condition>VersionNT > 600</Condition>
-                <RegistryKey Root="HKCR" Key="$(var.TestPrefix)Python.File\Shell\editwithidle\shell\edit$(var.MajorVersionNumber)$(var.MinorVersionNumber)$(var.Suffix32)">
-                    <RegistryValue Name="MUIVerb" Value="!(loc.EditSubMenu)" Type="string" KeyPath="yes" />
-                    <RegistryValue Key="command" Value='"[PYTHONW_EXE]" -m idlelib "%L" %*' Type="string" />
-                </RegistryKey>
-            </Component>
-            <Component Id="assoc_editwithidle_nocon" Directory="InstallDirectory">
-                <Condition>VersionNT > 600</Condition>
-                <RegistryKey Root="HKCR" Key="$(var.TestPrefix)Python.NoConFile\Shell\editwithidle\shell\edit$(var.MajorVersionNumber)$(var.MinorVersionNumber)$(var.Suffix32)">
-                    <RegistryValue Name="MUIVerb" Value="!(loc.EditSubMenu)" Type="string" KeyPath="yes" />
-                    <RegistryValue Key="command" Value='"[PYTHONW_EXE]" -m idlelib "%L" %*' Type="string" />
-                </RegistryKey>
-            </Component>
-            
-            <Component Id="assoc_editwithidle_vista" Directory="InstallDirectory">
-                <Condition>VersionNT = 600</Condition>
-                <RegistryKey Root="HKCR" Key="$(var.TestPrefix)Python.File\Shell\editwithidle$(var.MajorVersionNumber)$(var.MinorVersionNumber)$(var.Suffix32)">
-                    <RegistryValue Value="!(loc.EditSubMenu)" Type="string" KeyPath="yes" />
-                    <RegistryValue Key="command" Value='"[PYTHONW_EXE]" -m idlelib "%L" %*' Type="string" />
-                </RegistryKey>
-            </Component>
-            <Component Id="assoc_editwithidle_nocon_vista" Directory="InstallDirectory">
-                <Condition>VersionNT = 600</Condition>
-                <RegistryKey Root="HKCR" Key="$(var.TestPrefix)Python.NoConFile\Shell\editwithidle$(var.MajorVersionNumber)$(var.MinorVersionNumber)$(var.Suffix32)">
-                    <RegistryValue Value="!(loc.EditSubMenu)" Type="string" KeyPath="yes" />
-                    <RegistryValue Key="command" Value='"[PYTHONW_EXE]" -m idlelib "%L" %*' Type="string" />
-                </RegistryKey>
-            </Component>
-        </Feature>
     </Product>
 </Wix>
diff --git a/Tools/msi/tcltk/tcltk_reg.wxs b/Tools/msi/tcltk/tcltk_reg.wxs
new file mode 100644 (file)
index 0000000..e098927
--- /dev/null
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+    <Fragment>
+        <ComponentGroup Id="idle_reg">
+            <!-- We fix the guid of the Subcommands key so that it is correctly reference counted -->
+            <Component Id="assoc_subcommands" Directory="InstallDirectory" Guid="{57D47B4C-96E6-40A0-A958-57083D74423F}">
+                <Condition>VersionNT > 600</Condition>
+                <RegistryValue Root="HKCR" Key="$(var.TestPrefix)Python.File\Shell\editwithidle" Name="MUIVerb" Value="!(loc.EditMenu)" Type="string" KeyPath="yes" />
+                <RegistryValue Root="HKCR" Key="$(var.TestPrefix)Python.File\Shell\editwithidle" Name="Subcommands" Value="" Type="string" KeyPath="no" />
+            </Component>
+            <Component Id="assoc_subcommands_nocon" Directory="InstallDirectory" Guid="{07061D85-9151-4FC4-BB78-13628020D026}">
+                <Condition>VersionNT > 600</Condition>
+                <RegistryValue Root="HKCR" Key="$(var.TestPrefix)Python.NoConFile\Shell\editwithidle" Name="MUIVerb" Value="!(loc.EditMenu)" Type="string" KeyPath="yes" />
+                <RegistryValue Root="HKCR" Key="$(var.TestPrefix)Python.NoConFile\Shell\editwithidle" Name="Subcommands" Value="" Type="string" KeyPath="no" />
+            </Component>
+            
+            <Component Id="assoc_editwithidle" Directory="InstallDirectory">
+                <Condition>VersionNT > 600</Condition>
+                <RegistryKey Root="HKCR" Key="$(var.TestPrefix)Python.File\Shell\editwithidle\shell\edit$(var.MajorVersionNumber)$(var.MinorVersionNumber)$(var.Suffix32)">
+                    <RegistryValue Name="MUIVerb" Value="!(loc.EditSubMenu)" Type="string" KeyPath="yes" />
+                    <RegistryValue Key="command" Value='"[PYTHONW_EXE]" -m idlelib "%L" %*' Type="string" />
+                </RegistryKey>
+            </Component>
+            <Component Id="assoc_editwithidle_nocon" Directory="InstallDirectory">
+                <Condition>VersionNT > 600</Condition>
+                <RegistryKey Root="HKCR" Key="$(var.TestPrefix)Python.NoConFile\Shell\editwithidle\shell\edit$(var.MajorVersionNumber)$(var.MinorVersionNumber)$(var.Suffix32)">
+                    <RegistryValue Name="MUIVerb" Value="!(loc.EditSubMenu)" Type="string" KeyPath="yes" />
+                    <RegistryValue Key="command" Value='"[PYTHONW_EXE]" -m idlelib "%L" %*' Type="string" />
+                </RegistryKey>
+            </Component>
+            
+            <Component Id="assoc_editwithidle_vista" Directory="InstallDirectory">
+                <Condition>VersionNT = 600</Condition>
+                <RegistryKey Root="HKCR" Key="$(var.TestPrefix)Python.File\Shell\editwithidle$(var.MajorVersionNumber)$(var.MinorVersionNumber)$(var.Suffix32)">
+                    <RegistryValue Value="!(loc.EditSubMenu)" Type="string" KeyPath="yes" />
+                    <RegistryValue Key="command" Value='"[PYTHONW_EXE]" -m idlelib "%L" %*' Type="string" />
+                </RegistryKey>
+            </Component>
+            <Component Id="assoc_editwithidle_nocon_vista" Directory="InstallDirectory">
+                <Condition>VersionNT = 600</Condition>
+                <RegistryKey Root="HKCR" Key="$(var.TestPrefix)Python.NoConFile\Shell\editwithidle$(var.MajorVersionNumber)$(var.MinorVersionNumber)$(var.Suffix32)">
+                    <RegistryValue Value="!(loc.EditSubMenu)" Type="string" KeyPath="yes" />
+                    <RegistryValue Key="command" Value='"[PYTHONW_EXE]" -m idlelib "%L" %*' Type="string" />
+                </RegistryKey>
+            </Component>
+        </ComponentGroup>
+    </Fragment>
+</Wix>