Changes
Made package language-independent
Silent installer for Windows XP Service Pack 3 (Italian version in this case).
Checks uninstall information and registry key "CSDVersion" so that it will not try to install on a machine with SP3 factory preinstalled, which typically does not show "Windows XP Service Pack 3" in the Add/Remove program application.
Technet page for Service Pack 3: http://technet.microsoft.com/en-us/windowsxp/0a5b9b10-17e3-40d9-8d3c-0077c953a761.aspx
<source lang="xml">
<packages>
<package id="WinXP-SP3-ita" name="Windows XP Service Pack 3 (italian)" revision="1" reboot="true" priority="0">
<check type="logical" condition="or">
<check type="registry" condition="equals" path="HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName" value="Microsoft Windows 2000" />
<check type="uninstall" condition="exists" path="Windows XP Service Pack 3" />
</check>
<install cmd='%SOFTWARE%\ServicePacks\WindowsXPinstall-KB936929localized-SP3-x86-ITA.exe /quiet /norestartcmd'>
<exit code="0" />
<exit code="3010" />
</package>
</packages>
</source>
Instead of calling the Service Pack installer straight from within the WPKG package, we call a batch-file which determines the system-locale and executes the localized service pack installer (as diferent locales won't install).
This is the possible source code of that batch-files <code>install-localized-SP3.cmd</code> (You can of course add/delete languages to your needs; see http://www.microsoft.com/globaldev/reference/lcid-all.mspx for a complete list)
<source lang="dos">
@echo off
:detect
for /f "Skip=1 Tokens=3*" %%i in ('reg QUERY "hklm\system\controlset001\control\nls\language" /v Installlanguage') do set language=%%i
:: Dutch - Belgium
if "%language%" == "0813" (
set LANG=NLD
goto select
)
:: Dutch - Netherlands
if "%language%" == "0413" (
set LANG=NLD
goto select
)
:: English - United States
if "%language%" == "0409" (
set LANG=ENU
goto select
)
:select
echo Found Language: %LANG%
echo installing %SOFTWARE%\ServicePacks\WindowsXP-KB936929-SP3-x86-%LANG%.exe /quiet /norestart
%SOFTWARE%\ServicePacks\WindowsXP-KB936929-SP3-x86-%LANG%.exe /quiet /norestart
exit /B %ERRORLEVEL%
</source>
</pre>
----
[[Category: Silent Installers]]
[[Category: Silent installers for Windows Hotfixes]]
[[category:Security Advisories]]