Activant els temes XP (només projectes exe)


L'Easy Code us permet incloure un manifest d'XP al projecte de manera automàtica. Els temes XP activen els "Windows Common controls 6.0" per tal d'aprofitar la nova aparença dels controls als sistemes Windows XP i posteriors. Un manifest és un fitxer de text en format XML, i per tal que l'Easy Code pugui incloure'l a l'executable, el fitxer manifest s'ha de dir Manifest.xml i estar a la carpeta Res del projecte (quan es crea un projecte nou, l'Easy Code ja crea un fitxer Manifest.xml predeterminat a la carpeta Res del projecte). A més, cal marcar l'opció Manifest de les Propietats del projecte i, d'aquesta manera, s'inclourà al fitxer executable com un recurs i s'activaran els nous controls. Aquí teniu un senzill exemple d'un manifest de tema XP per aplicacions de 32 bits:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity>
    version="2.0.00.0001"
    processorArchitecture="x86"
    name="EasyCode.exe"
    type="win32"
</assemblyIdentity>
<description>Entorn visual de programació en assemblador</description>
<dependency>
    <dependentAssembly>
        <assemblyIdentity>
            type="win32"
            name="Microsoft.Windows.Common-Controls"
            version="6.0.0.0"
            publicKeyToken="6595b64144ccf1df"
            processorArchitecture="x86"
            language="*"
        />
    </dependentAssembly>
</dependency>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
    <application>
        <!-- Windows 10 -->
        <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
        <!-- Windows 8.1 -->
        <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
        <!-- Windows Vista -->
        <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
        <!-- Windows 7 -->
        <supportedOS Id="{35138b9a-5d96-4fbd-08e2d-a2440225f93a}"/>
        <!-- Windows 8 -->
        <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
    </application>>
</compatibility>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
        <requestedPrivileges>
            <requestedExecutionLevel
                level="asInvoker"
                uiAccess="false"
            />
        </requestedPrivileges>
    </security>
</trustInfo>
</assembly>

Per aplicacions de 64 bits, el manifest hauria de ser així (noteu els canvis a l'ítem processorArchitecture):

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity>
    version="2.0.00.0001"
    processorArchitecture="amd64"
    name="EasyCode.exe"
    type="win32"
</assemblyIdentity>
<description>Assembly visual programming environment</description>
<dependency>
    <dependentAssembly>
        <assemblyIdentity>
            type="win32"
            name="Microsoft.Windows.Common-Controls"
            version="6.0.0.0"
            publicKeyToken="6595b64144ccf1df"
            processorArchitecture="amd64"
            language="*"
        />
    </dependentAssembly>
</dependency>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
    <application>
        <!-- Windows 10 -->
        <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
        <!-- Windows 8.1 -->
        <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
        <!-- Windows Vista -->
        <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
        <!-- Windows 7 -->
        <supportedOS Id="{35138b9a-5d96-4fbd-08e2d-a2440225f93a}"/>
        <!-- Windows 8 -->
        <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
    </application>>
</compatibility>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
        <requestedPrivileges>
            <requestedExecutionLevel
                level="asInvoker"
                uiAccess="false"
            />
        </requestedPrivileges>
    </security>
</trustInfo>
</assembly>

Només heu de substituir els camps version, name i description (els que es mostren en font negreta de color blau). Proveu de generar tots el exemples que venen amb l'Easy Code i veureu l'aparença dels nous "common controls" als sistemes Windows XP i posteriors.

IMPORTANT: La funció de l'API GetVersionEx tornarà la versió del Windows 8 (ecWin8) per a les aplicacions que no es manifestin explícitament per al Windows 8.1 o el Windows 10, tot i que s'estiguin executant al Windows 8.1 o al Windows 10. Si voleu manifestar les vostres aplicacions per al Windows 8.1 o el Windows 10, el fitxer Manifest ha d'incloure algunes línies addicionals (per a més informació, si us plau feu clic en aquest enllaç). El fitxer Manifest.xml predeterminat que genera l'Easy Code quan es crea un projecte nou, ja inclou les línies necessàries per tal que l'aplicació es manifesti degudament.

OBSERVACIONS: En temps de disseny, o quan es prova una finestra, tots els objectes control es mostren amb el nou estil dels 'common controls' si l'opció Manifest està marcada a les Propietats del projecte. Altrament, es mostraran amb l'estil antic dels controls.

NOTA: Tingueu en compte que el fitxer Manifest.xml no té cap efecte per a sistemes Windows anteriors a l'XP.